Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何实现SoapHttpClientProtocol_C#_Web Services_Soap Client_Soaphttpclientprotocol - Fatal编程技术网

C# 如何实现SoapHttpClientProtocol

C# 如何实现SoapHttpClientProtocol,c#,web-services,soap-client,soaphttpclientprotocol,C#,Web Services,Soap Client,Soaphttpclientprotocol,因为问题告诉我SoapHttpClientProtocol不是线程安全的。而且,我的实际测试告诉我这是真的,因为我的SoapHeader属性在调用之间不断混淆。有没有办法确保我可以跨线程使用它并保持属性正确?确保我没有遇到问题中给出的例子,一个线程认为连接是打开的,而另一个线程关闭了它?在发出请求后,我是否需要担心soap头的值?在发出请求之前,我如何在设置属性时验证属性是否正确?我要问的第一件事是,如果您不将其设置为多线程,您的服务是否正常工作。如果您进行后续调用,它们是否都能正常工作并提供所

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

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

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

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

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


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

为什么不为每个线程分配一个单独的SoapHttpClientProtocol实例?我已经尝试过了,但似乎多个请求仍然会更改服务器端的属性。即使在本地实例中我设置了正确的属性,当请求发出时,它可能会在另一个调用的属性下进行操作。因此,服务器没有正确处理它?@nobugz,可能是服务器。我们称之为第三方服务。我以为我做错了。有没有办法追踪到服务器?这样的话,如果它是在他们这边,我可能会得到一个修复。是的,单线程的工程刚刚好。这就是目前正在运行的代码,我正试图加快工作速度。另外两个建议我将尝试写呼叫和尝试应用程序域。谢谢。另一个测试的想法,看看是你还是他们。创建一个简单的exe(基于控制台就可以了),它只需要不断地访问服务。为两种不同的请求类型创建两个版本。对照你知道应该得到的内容检查你的回答,并同时运行两个前男友。它应该循环并保持重新发送,以便创建卷,并希望重复您的问题。如果得到错误的响应,让它失败。可能有助于消除某些途径。此外,如果它能工作,那么可能是应用程序域的事情,也可能是你的代码中有什么东西导致了损坏。谢谢你的帮助,找出了它。现在,我可以真正看到我的soap消息并检查它们,这肯定是在服务器端。我的问题没有得到解决,但现在我知道要找到解决办法而不是解决办法。很高兴我能帮上忙。可惜的是,在这一方面,总是很难让第三方更新内容。