我们有一个连接到外部 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