如何解决解决SoapHttpClientProtocol连接问题
|| 在生产服务器上使用SOAP客户端时出现超时:System.Net.WebException: The request timed out
at System.Net.HttpWebRequest.GetRequestStream () [0x00000] in <filename unknown>:0
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (System.String method_name,System.Object[] parameters) [0x00000] in <filename unknown>:0
尝试从该计算机ping另一个端点时,它可以正常工作,即使远程登录到端口80也可以,因此,这不是连接问题(我认为)。
相同的代码可以在另一台计算机上正常工作,只是生产过程中遇到此问题。任何想法如何解决此问题?
解决方法
您可以启用网络跟踪,将跟踪日志附加到问题将很有帮助。
,好的,终于解决了这个问题,并在16个不间断的小时之后,这就是我的想法。它很奇怪,令人费解和怪异,因此值得在此发表后代文章:
步骤1:
创建一个Web项目,该项目引用一个类库,该类库引用了npgsql.dll(后者又引用了Mono.Security.dll)。在Web项目中添加Web服务引用,并在某些页面中使用它。
SOAP客户端现在可以正常工作
第2步:(这花了10个小时才能隔离)
在引用的类库中添加Class1.cs,并使该类使用npgsql.dll中的类,然后在您的Web项目中使用该类,但要使用从未使用过代码的地方。
SOAP客户端现在因超时而崩溃
在16小时的大部分时间内,从未调用过的代码如何改变SOAP客户端的行为?
回答
当从npgsql.dll引用一个类时(即使从未调用该代码),npgsl.dll和Mono.Security.dll也被复制到bin文件夹中。
由于某种未知原因,Mono.Security.dll阻止了SOAP客户端进行未经认证的连接。
只需从bin文件夹中删除Mono.Security.dll,即可立即解决此问题。
我不知道为什么需要Mono.Security.dll,或者它使SOAP变得混乱,或者我怎么能从bin文件夹中删除它并使一切正常运行。
好吧,这就是我在很短的时间内见过的最奇怪的错误的故事。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。