0

因为这个问题告诉我 SoapHttpClientProtocol 不是线程安全的。而且,我的真实生活测试告诉我这是真的,因为我的 SoapHeader 属性在调用之间不断混淆。有没有办法确保我可以跨线程使用它并保持我的属性正确?并确保我没有遇到那个问题中给出的示例,即一个线程认为连接已打开,而另一个线程已关闭它?提出请求后,我是否需要担心soap 标头值?在发出请求之前,如何验证属性是否与我设置的一样?

4

1 回答 1

1

我要问的第一件事是,如果您不使其成为多线程,您的服务是否可以正常工作。如果您进行后续调用,它们是否都能正常工作并为您提供所需的结果?如果不是,那么服务器端很可能存在问题。

要查看您发送的内容,您可以在soap 消息发送之前对其进行序列化。确保它正确生成。

我的工作阻止访问很多网站,但如果我没记错的话,CodeProject 有一些例子。

如果单线程工作有序列化层并让它在多线程场景中将文件写入磁盘。然后,您可以通过您的代码认为它正在发送的内容来查看哪些内容有效,哪些内容无效。

您的呼叫很可能被服务器混合,因为您尝试建立多个连接,而它可能将您的端点视为一个值,有点像在 NAT 防火墙后面。这意味着您可能正在建立连接,但您的其他线程之一首先通过它获取消息。如果是这种情况,您可以尝试在其自己的应用程序域中旋转每个线程,看看它是否为您做任何事情。并不是说它会起作用,但我不确定我还有什么可以尝试的。

于 2009-12-23T17:07:21.217 回答