我们有一个连接到外部web服务的ASP.Net网站,几天前突然停止工作。
基本代码如下:
我们的Web服务器没有最近的更新,并且我可以使用Firefox从Web服务器连接到wsdl服务(但是我无法使用IE连接,但这可能与我们在Web服务器上使用IE的其他问题有关)。
我尝试了所有发布在此处的解决方案,包括设置
我们的Web服务器正在运行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 [写入请求] 调用者: 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
基本代码如下:
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
异常,并返回以下堆栈跟踪:
底层连接已关闭: 发生了发送意外错误。 at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at ExternalWebService.ProcessRequestService.processCommand(parameters)当我尝试在我的开发机上调试这个问题时,它工作得很好,没有出现异常。
我们的Web服务器没有最近的更新,并且我可以使用Firefox从Web服务器连接到wsdl服务(但是我无法使用IE连接,但这可能与我们在Web服务器上使用IE的其他问题有关)。
我尝试了所有发布在此处的解决方案,包括设置
KeepAlive = False
和ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
,但都没有解决这个问题。我们的Web服务器正在运行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 [写入请求] 调用者: 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