首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排除SoapHttpClientProtocol连接故障

排除SoapHttpClientProtocol连接故障
EN

Stack Overflow用户
提问于 2011-05-26 20:49:36
回答 2查看 1.4K关注 0票数 1

在生产服务器上使用SOAP客户端时出现超时:

代码语言:javascript
复制
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另一个端点时,它可以工作,甚至telnet到端口80也可以工作,所以这不是一个连接问题(我认为)。

同样的代码在另一台计算机上运行得很好,只是在生产环境中遇到了这个问题。有什么想法可以解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-27 19:08:42

好了,终于解决了这个问题,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客户端建立未经认证的连接。

只需将Mono.Security.dll从bin文件夹中删除即可解决此问题。

我不知道为什么需要Mono.Security.dll,或者它做了什么会弄乱SOAP,或者为什么我可以从bin文件夹中删除它,并让一切正常运行。

这就是我很久以来见过的最奇怪的虫子的故事。

票数 1
EN

Stack Overflow用户

发布于 2011-05-26 21:00:53

您可以启用Network Tracing,将跟踪日志附加到问题将是有帮助的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6138738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档