views:

690

answers:

1

I have a CLR enabled .NET app that accesses a webservice and writes an xml file to a webserver for a SQLServer SSIS package to digest. Everything works fine on the development servers, but the production server returns the following error:

Error creating the Web Proxy specified in the 'system.net/defaultProxy' configuration section.: at System.Net.Configuration.DefaultProxySectionInternal.GetSection() at System.Net.WebRequest.get_InternalDefaultWebProxy() at System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint) at System.Net.HttpRequestCreator.Create(Uri Uri) at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) at System.Web.Services.Protocols.WebClientProtocol.GetWebRequest(Uri uri) at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebRequest(Uri uri) at System.Web.Services.Protocols.SoapHttpClientProtocol.GetWebRequest(Uri uri) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at MyDBProj.com.dmsintegration.secure.VehicleInventoryService.RetriveVehicleInventory(RetrieveAllRecordsRequest request) at UserDefinedFunctions.LoadDMSFile(String dealer_id, String dms_username, String dms_password, String dms_location_id)

There are no differences between the server OS versions or the SQLServer versions. We are using Windows Server 2003 R2 and SQL Server 2005. I believe it must be a configuration on the server itself but I cannot find any differences between the servers. Neither server runs a software firewall.

Full Exception:

System.Configuration.ConfigurationErrorsException: Error creating the Web Proxy specified in the 'system.net/defaultProxy' configuration section. ---> System.DllNotFoundException: Unable to load DLL 'rasapi32.dll': A dynamic link library (DLL) initialization routine failed. (Exception from HRESULT: 0x8007045A)
at System.Net.UnsafeNclNativeMethods.RasHelper.RasEnumConnections(RASCONN[] lprasconn, UInt32& lpcb, UInt32& lpcConnections) at System.Net.UnsafeNclNativeMethods.RasHelper.GetCurrentConnectoid() at System.Net.AutoWebProxyScriptEngine.AutoDetector.Initialize() at System.Net.AutoWebProxyScriptEngine..ctor(WebProxy proxy, Boolean useRegistry) at System.Net.WebProxy.UnsafeUpdateFromRegistry() at System.Net.Configuration.DefaultProxySectionInternal..ctor(DefaultProxySection section) at System.Net.Configuration.DefaultProxySectionInternal.GetSection() --- End of inner exception stack trace --- at System.Net.Configuration.DefaultProxySectionInternal.GetSection() at System.Net.WebRequest.get_InternalDefaultWebProxy() at System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint) at System.Net.HttpRequestCreator.Create(Uri Uri) at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) at System.Web.Services.Protocols.WebClientProtocol.GetWebRequest(Uri uri) at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebRequest(Uri uri) at System.Web.Services.Protocols.SoapHttpClientProtocol.GetWebRequest(Uri uri) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at MyDBProj.com.dmsintegration.secure.VehicleInventoryService.RetriveVehicleInventory(RetrieveAllRecordsRequest request) at UserDefinedFunctions.LoadDMSFile(String dealer_id, String dms_username, String dms_password, String dms_location_id)

+2  A: 

James, look closely:

Error creating the Web Proxy specified in the 'system.net/defaultProxy' configuration section

John Saunders
Yes...All the servers have the same config in the web.config. <defaultProxy> <proxy usesystemdefault="true"/></defaultProxy>The internet connection settings concerning web proxies are identical on all the servers. I am trying to figure out why the error only occurs on one server when all of these configs are the same.
James
What is specified in the **'system.net/defaultProxy'** section on all the machines?
John Saunders
And did you consider machine.config and the base web.config, and all the web.configs up the hierarchy? Are the sites all in the same virtual location on all machines?
John Saunders
The snippet I posted in my comment is exactly what is in the config file. <defaultProxy> only appears in the base web.config file on each server. In each case the clr assembly is loaded to the SQL server with the same permissions.
James
I guess I didn't see the code in your comment at first. You should update your question with that information. Suggestion: can you pick a single proxy and set it explicitly? "usesystemdefault" means it could be different on each system, and you'd have to find out why. Also, is that the entire exception? The output of ex.ToString()? I'd be curious to know if there was an InnerException.
John Saunders
The InnerException reads: 'System.DllNotFoundException: Unable to load DLL 'rasapi32.dll': A dynamic link library (DLL) initialization routine failed.' rasapi32.dll is present in the same location on all the servers. The only common remedy that I have found on Google is to change usesystemdefault to false. I have done that on all the servers with the same results.
James
James, please do: try { <code here>} catch (Exception ex){Console.WriteLine(ex.ToString());} and post ex.ToString(). There may be more inner's, and the stack traces may be useful. rasapi32.dll will be the problem. It's not making this up.
John Saunders