我们有一个连接到外部 Web 服务的 ASP.Net 网站,几天前它突然停止工作。
基本代码是这样的:
Try
request = New ExternalWebService.ProcessRequestService
' Error occurs here:
response = request.processCommand(parameters)
' Do some other stuff with response here
Catch webEx As System.Net.WebException
' This triggers and generic error gets displayed
Catch ex As Exception
Finally
End Try
System.Net.WebException
触发SendFailure
异常,并返回此堆栈跟踪:
底层连接已关闭:发送时发生意外错误。- 在 System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest 请求) 在 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest 请求) 在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串方法名,对象 [] 参数) 在 ExternalWebService.ProcessRequestService.processCommand(参数)
当我尝试在我的开发机器上调试这个问题时,它工作正常并且没有发生异常。
我们的网络服务器最近没有更新,我可以使用 FireFox 从网络服务器连接到 wsdl 服务(但是我无法连接到 IE,但这可能与我们在网络服务器上使用 IE 时遇到的另一个问题有关)
我已经尝试了此处针对错误消息 #2 发布的所有解决方案,包括设置KeepAlive = False
和ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
,但是没有一个能够解决该问题。
我们的网络服务器正在运行 Windows Server 2003 和 IIS6.0
什么会导致此错误发生在一台机器上,而不是另一台机器上?
编辑:这是跟踪信息:
System.Web.Services.Asmx 信息:0:调用 XmlSerializer [创建 XmlSerializer] 方法:System.Xml.Serialization.XmlSerializer#1669721556::FromMappings(System.Xml.Serialization.XmlMapping[]#4002219=[4], ExternalWebService.ProcessRequestService#93032588=ExternalWebService.ProcessRequestService) 调用者:System.Web.Services.Protocols.SoapClientType#42808772::.ctor(ExternalWebService.ProcessRequestService#93032588=ExternalWebService.ProcessRequestService) 进程 ID=2796 逻辑操作栈= 线程 ID=14 日期时间=2012-12-21T17:02:39.2826250Z 时间戳=61755143048799345 System.Web.Services.Asmx 信息:0:从 XmlSerializer 返回 [创建 XmlSerializer] 调用者:System.Web.Services.Protocols.SoapClientType#42808772::.ctor(ExternalWebService.ProcessRequestService#93032588=ExternalWebService.ProcessRequestService) 进程 ID=2796 逻辑操作栈= 线程 ID=14 日期时间=2012-12-21T17:02:39.6576250Z 时间戳=61755144323396760 System.Web.Services.Asmx 信息:0:调用 XmlSerializer [写入请求] 方法:Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer#1231684::Serialize(System.Xml.XmlTextWriter#8023888=.., System.Object[]#19695157=[40], (null), (null)) 调用者:ExternalWebService.ProcessRequestService#60553900::Serialize() 进程 ID=2796 逻辑操作栈= 线程 ID=14 日期时间=2012-12-21T17:02:39.7357500Z 时间戳=61755144598320131 System.Web.Services.Asmx 信息:0:从 XmlSerializer 返回 [Write Request] 调用者:ExternalWebService.ProcessRequestService#60553900::Serialize() 进程 ID=2796 逻辑操作栈= 线程 ID=14 日期时间=2012-12-21T17:02:39.7357500Z 时间戳=61755144621621529 System.Web.Services.Asmx 信息:0:调用 WebRequest.GetResponse 方法:System.Net.HttpWebRequest#2800407::GetResponse() 调用方:ExternalWebService.ProcessRequestService#60553900::GetWebResponse() 进程 ID=2796 逻辑操作栈= 线程 ID=14 日期时间=2012-12-21T17:02:39.7357500Z 时间戳=61755144622114240