我有一个启用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)
答案 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是你的朋友!