.net 创建Web代理时出错

.net 创建Web代理时出错,.net,clr,webproxy,.net,Clr,Webproxy,我有一个启用CLR的.NET应用程序,它访问Web服务并将xml文件写入Web服务器,以便SQLServer SSIS包进行摘要。在开发服务器上一切正常,但生产服务器返回以下错误: 创建指定的Web代理时出错 在“system.net/defaultProxy”中 配置部分:在 System.Net.Configuration.DefaultProxySectionInternal.GetSection() 在 System.Net.WebRequest.get_InternalDefaultW

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

创建指定的Web代理时出错 在“system.net/defaultProxy”中 配置部分:在 System.Net.Configuration.DefaultProxySectionInternal.GetSection() 在 System.Net.WebRequest.get_InternalDefaultWebProxy() 在System.Net.HttpWebRequest..ctor(Uri uri,服务点(ServicePoint)位于 System.Net.HttpRequestCreator.Create(Uri Uri)在 System.Net.WebRequest.Create(Uri requestUri,布尔值useUriBase)位于 System.Web.Services.protocol.WebClientProtocol.GetWebRequest(Uri uri)在 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebRequest(Uri uri)在 System.Web.Services.Protocols.SoapHttpClientProtocol.GetWebRequest(Uri uri)在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串 methodName,对象[]参数)位于 MyDBProj.com.dmsigration.secure.VehicleInventoryService.RetrieveVehicleInventory(RetrieveAllRecordsRequest (请求)在 UserDefinedFunctions.LoadDMSFile(字符串 经销商id,字符串dms用户名,字符串 dms_密码,字符串dms_位置(id)

服务器操作系统版本和SQLServer版本之间没有差异。我们使用的是WindowsServer2003R2和SQLServer2005。我相信这一定是服务器本身的配置,但我找不到服务器之间的任何差异。两台服务器都没有运行软件防火墙

完全例外:

System.Configuration.ConfigurationErrorsException: 创建指定的Web代理时出错 在“system.net/defaultProxy”中 配置部分。 --->System.DllNotFoundException:无法加载DLL“rasapi32.DLL”:A 动态链接库(DLL) 初始化例程失败。 (HRESULT的例外:0x8007045A)
在 System.Net.UnsafeNclNativeMethods.RasHelper.RasEnumConnections(RASCONN[] lprasconn,UInt32和lprasconn,UInt32& LPC连接)在 System.Net.UnsafeNclNativeMethods.RasHelper.GetCurrentConnectoid() 在 System.Net.AutoWebProxyScriptEngine.AutoDetector.Initialize() 在 System.Net.AutoWebProxyScriptEngine..ctor(WebProxy 代理,布尔用户注册表)位于 System.Net.WebProxy.UnsafeUpdateFromRegistry() 在 System.Net.Configuration.DefaultProxySectionInternal..ctor(DefaultProxySection 第(1)节 System.Net.Configuration.DefaultProxySectionInternal.GetSection() ---内部异常堆栈跟踪结束---位于System.Net.Configuration.DefaultProxySectionInternal.GetSection()处 在 System.Net.WebRequest.get_InternalDefaultWebProxy() 在System.Net.HttpWebRequest..ctor(Uri uri,服务点(ServicePoint)位于 System.Net.HttpRequestCreator.Create(Uri Uri)在 System.Net.WebRequest.Create(Uri requestUri,布尔值useUriBase)位于 System.Web.Services.protocol.WebClientProtocol.GetWebRequest(Uri uri)在 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebRequest(Uri uri)在 System.Web.Services.Protocols.SoapHttpClientProtocol.GetWebRequest(Uri uri)在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串 methodName,对象[]参数)位于 MyDBProj.com.dmsigration.secure.VehicleInventoryService.RetrieveVehicleInventory(RetrieveAllRecordsRequest (请求)在 UserDefinedFunctions.LoadDMSFile(字符串 经销商id,字符串dms用户名,字符串 dms_密码,字符串dms_位置(id)

詹姆斯,仔细看:

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


从.Net Winform应用程序调用Web服务时,出现了完全相同的错误消息

在我们的例子中,错误发生在同一服务器上的一个用户身上,而不是另一个用户(具有本地管理员权限)

事实上,它与WCF无关;从应用程序调用简单网页时,也会出现相同的错误。不允许正在执行的用户帐户打开Web代理连接

我们通过将应用程序移动到C:\Program文件中解决了这个问题。由于一个我还不能确切解释的原因,同一个用户可以从这个文件夹创建代理


欢迎对此有任何见解。

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

我制作了一份tf.exe/tf.exe.config的副本,并将其放在WinDBG文件夹中,效果很好

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


SysInternals的进程监视器是您的朋友

我们也面临同样的问题。 eror正在创建“system.net/defaultProxy”配置部分中指定的Web代理


我通过更正网站中配置文件中的错误条目解决了此问题。只需确保所有标记都已正确选择和关闭。这可能会解决您的问题。

是。。。所有服务器在web.config中都有相同的配置。所有服务器上有关web代理的internet连接设置都是相同的。我试图弄清楚为什么只有当所有这些配置都相同时,错误才会出现在一个服务器上。在所有机器上的“St.NET/Debug代理”部分中指定了什么?您是否考虑了Madio.CONFIG和基本Web.CONFIG,以及所有Web.配置了层次结构?这些网站都在同一个地方吗