由于this问题告诉我SoapHttpClientProtocol不是线程安全的。而且,我的真实生活测试告诉我这是真实的,因为我的SoapHeader属性在调用之间不断混淆。有没有办法确保我可以在线程中使用它并保持我的属性正确?并且确保我没有遇到一个线程在这个问题中给出的例子,当另一个线程关闭它时,它认为连接是开放的?我的请求完成后,是否需要担心肥皂标题值?我如何验证这些属性是我设置的,直到请求被发布为止?如何实现SoapHttpClientProtocol
回答
我会问的第一件事是,如果你不使它成为多线程,你的服务能否正常工作。如果您进行后续通话,他们是否都能正常工作,并为您提供期望的结果?如果没有,那么服务器端就会出现问题。
要查看您发送的内容,您可以在soap消息发出之前序列化它。确保它正在正确生成。
我的工作阻止访问很多网站,但CodeProject有一些例子,如果我没有记错的话。
如果单线程工作有序列化层,并在多线程场景中将文件写入磁盘。然后你就可以看到什么在工作,什么不是你的代码认为它正在发送。
由于您试图建立多个连接,而您可能将您的端点看作一个值,这就像是在NAT防火墙后面一样,您的呼叫很可能会被服务器混合。这意味着你可能会得到一个连接,但你的其他线程之一首先得到它的消息。如果是这种情况,您可以尝试将每个线程放在自己的应用程序域中,看看它是否为您做了任何事情。不是说它会起作用,但不知道还有什么可以让你尝试。
是的,单线程工作得很好。这就是现在运行的代码,我正在努力加快这项工作。另外两个建议我会尝试将这些调用写出来并尝试应用程序域。谢谢。 – Alex 2009-12-23 17:28:47
测试另一个想法,看看它是你还是他们。创建一个简单的exe(基于控制台很好),只是不断的击中服务。创建两个版本,比如两种不同的请求类型。检查你的反应,你知道你应该得到并同时运行两个exes。它应该循环并继续重新发送,以创建音量并希望重复您的问题。如果得到不好的回应,它会失败。可能有助于消除一些途径。此外,如果它的工作,那么也许应用程序领域的事情可能会好,或者你的代码中有东西导致腐败。 – 2009-12-23 18:05:06
感谢您的帮助,找出答案。现在在服务器端定义我实际上可以看到我的肥皂信息并检查它们。没有得到我的问题修正,但现在我知道要otu工作而不是修复。 – Alex 2010-01-07 13:09:08
- 1. 如何将SoapHttpClientProtocol转换为HTTPS
- 2. 如何实现
- 3. SoapHttpClientProtocol线程安全吗?
- 4. SoapHttpClientProtocol/HttpWebClientProtocol连接状态
- 5. SoapHttpClientProtocol与HttpWebRequest的对比
- 6. SoapHttpClientProtocol日志响应xml
- 7. SoapHttpClientProtocol缓存代理凭证?
- 8. 如何实现TableDecorator?
- 9. 如何实现IDEA?
- 10. String.fromCharCode()如何实现?
- 11. 如何实现jquery.sound.js?
- 12. Storyboard.TargetName如何实现?
- 13. \ b如何实现?
- 14. 如何实现.Join()?
- 15. DirectCast如何实现
- 16. PTRACE_SINGLESTEP如何实现?
- 17. 如何实现SSAS
- 18. 如何实现zmsg_recv_nowait?
- 19. 如何实现Sandboxie
- 20. 如何实现块
- 21. TextUtils如何实现?
- 22. 如何实现SOAP?
- 23. 如何实现Sails.js
- 24. 如何实现DialogFragment
- 25. 如何实现IEnumerable?
- 26. ACL如何实现
- 27. 如何实现GAE
- 28. ExpandableListView如何实现?
- 29. 如何实现validateToolbarItem(_ :)?
- 30. 如何实现DaggerService
为什么不为每个线程分配一个单独的SoapHttpClientProtocol实例? – 2009-12-22 15:27:38
我已经试过了,它似乎仍然好像多个请求更改服务器端的属性。即使在本地实例中,我将propeties设置为正确,当请求发生时,它最终可能会在不同调用的属性下执行。 – Alex 2009-12-22 15:31:54
那么,服务器没有正确处理呢? – 2009-12-22 16:22:33