0
我们有一个应用程序将多个线程查询发送到SOAP服务。我们通过增加每个请求的线程执行时间数量来增加命令数量。为了理解为什么,我们写了一个SOAP扩展 - 结果很明显,即使有5个16处理器服务器的流,序列化时间大约是请求时间的95%,10个线程没有等待查询(在1个线程中查询的时间大约是150ms)。 谁遇到过这种行为?怀疑是在网络服务中,或在具有“死”块的串行器中。
P.S.在每个线程上创建自己的Web服务实例。
P.P.S.反序列化线程的数量似乎没有影响。在多线程应用程序中使用Web服务客户端
您是否在使用“添加Web参考”?不要这样做。使用“添加服务引用”来使用更现代的Web服务客户端堆栈。此外,如果您正在编写这些服务,请将它们写入WCF,除了SOAP之外,还可以使用TCP/IP上的二进制文件。 –
服务已经存在,我们不能将它重写到WCF。你遇到过这个问题吗?你解决了这个问题? – Boo
解决方案是使用WCF。 XML序列化器效率不高。你可以做的最好的事情是预先生成序列化类(使用sgen.exe),但这只能帮助启动。 –