创建Web代理时出错

时间:2009-07-21 15:54:00

标签: .net clr webproxy

我有一个启用CLR的.NET应用程序访问Web服务并将xml文件写入Web服务器以供SQLServer SSIS包消化。在开发服务器上一切正常,但生产服务器返回以下错误:

  

创建指定的Web代理时出错   在'system.net/defaultProxy'中   配置部分:at   System.Net.Configuration.DefaultProxySectionInternal.GetSection()   在   System.Net.WebRequest.get_InternalDefaultWebProxy()   在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(字符串   methodName,Object [] parameters)at   MyDBProj.com.dmsintegration.secure.VehicleInventoryService.RetriveVehicleInventory(RetrieveAllRecordsRequest   请求)   UserDefinedFunctions.LoadDMSFile(字符串   dealer_id,String dms_username,String   dms_password,String dms_location_id)

服务器操作系统版本或SQLServer版本之间没有区别。我们正在使用Windows Server 2003 R2和SQL Server 2005.我认为它必须是服务器本身的配置,但我找不到服务器之间的任何差异。两台服务器都没有运行软件防火墙。

完全例外:

  

System.Configuration.ConfigurationErrorsException:   创建指定的Web代理时出错   在'system.net/defaultProxy'中   配置部分。   ---> System.DllNotFoundException:无法加载DLL“rasapi32.dll”:A   动态链接库(DLL)   初始化例程失败。   (HRESULT的例外情况:0x8007045A)
  在   System.Net.UnsafeNclNativeMethods.RasHelper.RasEnumConnections(RASCONN []   lprasconn,UInt32& lpcb,UInt32&   lpcConnections)at   System.Net.UnsafeNclNativeMethods.RasHelper.GetCurrentConnectoid()   在   System.Net.AutoWebProxyScriptEngine.AutoDetector.Initialize()   在   System.Net.AutoWebProxyScriptEngine..ctor(WebProxy   proxy,Boolean useRegistry)at   System.Net.WebProxy.UnsafeUpdateFromRegistry()   在   System.Net.Configuration.DefaultProxySectionInternal..ctor(DefaultProxySection   部分)   System.Net.Configuration.DefaultProxySectionInternal.GetSection()   ---内部异常堆栈跟踪结束---在System.Net.Configuration.DefaultProxySectionInternal.GetSection()   在   System.Net.WebRequest.get_InternalDefaultWebProxy()   在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(字符串   methodName,Object [] parameters)at   MyDBProj.com.dmsintegration.secure.VehicleInventoryService.RetriveVehicleInventory(RetrieveAllRecordsRequest   请求)   UserDefinedFunctions.LoadDMSFile(字符串   dealer_id,String dms_username,String   dms_password,String dms_location_id)

4 个答案:

答案 0 :(得分:4)

从.Net Winform应用程序调用Web服务时,我们收到了完全相同的错误消息。

在我们的例子中,一个用户发生了错误,但是在同一台服务器上没有发生错误(具有本地管理员权限)。

实际上它与WCF无关;从您的应用程序调用简单的网页时,您会遇到同样的错误。不允许执行的用户帐户打开Web代理连接。

我们通过将应用程序移动到C:\ Program Files来解决问题。出于某种原因,我还无法准确解释,从该文件夹中,同一用户可以创建代理。

欢迎任何有关此事的见解。

答案 1 :(得分:2)

我们遇到了同样的问题。 创建' system.net/defaultProxy'中指定的Web代理的错误;配置部分。

我通过纠正网站配置文件中的错误条目来解决这个问题。请确保所有代码都已正确选中并关闭。这可能会重新解决您的问题。

答案 2 :(得分:1)

詹姆斯,仔细一看:

  

创建“system.net/defaultProxy”配置部分中指定的Web代理 时出错

答案 3 :(得分:0)

尝试从WinDBG访问源服务器时发生此错误。我在我的srcsrv.ini文件的C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\文件夹中引用了TF.EXE。

我制作了tf.exe / tf.exe.config的副本并将其放在WinDBG的文件夹中,它运行正常。

事实证明,早期从Microsoft Symbol Store下载的符号已将文件夹winhttp.dll等放在C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE文件夹中,并且正在读取这些文件夹。这使得tf.exe无法找到并加载这些dll。应该发生的是tf.exe没有在那里找到它们,而是从c:\Windows\Syswow64文件夹中加载它们。

来自SysInternals的Process Monitor是你的朋友!