Sco*_*try 7 c# iis coldfusion web-services
我有一个用C#编写的Winforms应用程序,它使用来自Windows 2008 IIS Coldfusion服务器的Web服务.所有Web服务调用都成功但只有一个,在大约50%的时间内失败并出现以下错误:
用户代码未处理System.InvalidOperationException消息= XML文档中存在错误(1254,7).
内部例外:
InnerException:System.IO.IOException Message =无法从传输连接读取数据:远程主机强制关闭现有连接.
我检查了我的IIS日志,得到503错误(服务不可用)和IIS代码64(指定的网络不再可用).任何建议都会很棒.
我在SOAP UI中运行我的Web服务,我收到以下错误:
javax.net.ssl.SSLException:连接已关闭:javax.net.ssl.SSLException:java.net.SocketException:连接重置
这个代码在一家公司工作正常,但这个错误几乎每次都出现在我正在使用的这家公司.
我不确定这是否适用于 OP 的特定情况,但这可能会帮助现在到达这里的其他人。此异常的一个潜在原因涉及不匹配的安全协议。如果您正在调用的服务器需要 TLS 1.2 并且您使用的是旧版本的 ASP.net(<= 4.0 版),除非您更改它,否则您将使用旧的安全协议进行调用。您可以强制 ASP.net 使用 TLS 1.2(如下所示)。这可以在应用程序的任何地方完成,但我把它放在调用需要 TLS 1.2 的 Web 服务的行之前:
using System.Net;
...
//Enable TLS 1.2
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
// Call the Web Service that requires TLS 1.2
Run Code Online (Sandbox Code Playgroud)
我确实遇到了类似的错误,原因是 XML 序列化中出现异常。大多数情况下,如果 xmlserializer 尝试读取某些属性,并且该 get 方法由于某些数据库连接已关闭或任何资源不可用而引发异常。
您是否尝试过在 global.asax 内的错误事件中记录异常?
有时,如果 global.asax 不引发错误事件,则只有通过响应过滤器记录错误的方法。您可以在 web.config 中添加自定义响应过滤器,在其中您将能够分析正确序列化的 XML 数量以及可能失败的位置。
http://msdn.microsoft.com/en-us/library/aa479332.aspx
http://www.raboof.com/projects/elmah/
归档时间: |
|
查看次数: |
15153 次 |
最近记录: |