7

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

创建在“system.net/defaultProxy”配置部分中指定的 Web 代理时出错。:在 System.Net.Configuration.DefaultProxySectionInternal.GetSection() at System.Net.WebRequest.get_InternalDefaultWebProxy() at System.Net.HttpWebRequest..ctor (Uri uri, ServicePoint servicePoint) 在 System.Net.HttpRequestCreator.Create(Uri Uri) 在 System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) 在 System.Web.Services.Protocols.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(String methodName, Object[ ] 参数)在 MyDBProj.com.dmsintegration.secure。VehicleInventoryService.RetriveVehicleInventory(RetrieveAllRecordsRequest 请求) 在 UserDefinedFunctions.LoadDMSFile(String Dealer_id, String dms_username, String dms_password, String dms_location_id)

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

完全例外:

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

4

4 回答 4

4

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

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

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

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

欢迎对此的任何见解。

于 2012-02-14T12:10:34.363 回答
2

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

我通过更正网站配置文件中的错误条目来解决它。只需确保所有标签都正确打开和关闭。它可能会解决您的问题。

于 2015-01-01T11:43:58.573 回答
1

詹姆斯,仔细看:

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

于 2009-07-21T15:56:52.927 回答
0

我在尝试从 WinDBG 访问源服务器时发生了这个错误。我在C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\srcsrv.ini 文件的文件夹中引用了 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 是您的朋友!

于 2013-06-18T15:59:42.603 回答