因为this问题告诉我SoapHttpClientProtocol不是线程安全。而且,我的现实生活测试告诉我这是真的,因为我的SoapHeader属性在调用之间总是混淆。有没有办法确保我可以跨线程使用它,并保持我的属性正确?并确保我不会遇到那个问题中给出的例子,一个线程认为连接是打开的,而另一个线程关闭了它?在发出请求后,我需要担心soap标头值吗?在发出请求之前,如何验证属性是否与我设置的一致?
发布于 2009-12-24 01:07:21
我要问的第一件事是,如果你不让它成为多线程的,你的服务能正常工作吗?如果您进行后续调用,它们是否都能正常工作,并给出所需的结果?如果不是,那么很可能是服务器端出现了问题。
要查看您正在发送的内容,您可以在soap消息发送之前将其序列化。确保它是正确生成的。
我的工作阻止了很多网站的访问,但如果我没记错的话,CodeProject有一些例子。
如果单线程可以工作,那么在多线程场景中,将序列化层放在适当的位置并让它将文件写入磁盘。然后,您可以通过您的代码认为它正在发送的内容来查看哪些内容正在工作,哪些内容不是。
您的呼叫很可能被服务器混合在一起,因为您试图建立多个连接,而服务器可能会将您的端点视为一个值,就像在NAT防火墙之后一样。这意味着你可能得到了一个连接,但你的另一个线程首先得到了它的消息。如果是这样的话,你可以试着在它自己的应用程序域中旋转每个线程,看看它是否为你做了什么。不是说它会工作,但我不确定还有什么可以让你尝试的。
https://stackoverflow.com/questions/1947006
复制相似问题