我是.net中的新手编程WCF。最近,我参与了一个WCF项目,它响应了客户端的图像文件字节。一切都很好,但性能。尽管该服务是以并发模式为并行构建的,但它将所有请求放入队列中。因此,如果5个请求在队列中,则最后一个请求必须等待5X(15秒而不是3秒)。 msdn博客:http://social.msdn.microsoft.com/Forums/en/wcf/thread/861ea6f7-6c4e-4c3f-abde-ae60228244ea解释了类似的问题。但解决方案对我没有帮助。我想提前感谢大家的任何建议/帮助。
答案 0 :(得分:0)
首先,如果可能的话,我建议尽可能在Server 2008+上使用IIS7。它的功能远远超过IIS6'。如果您无法使用IIS7 ......
确保你configured you website hosting your WCF services as a web garden。这允许多个工作进程处理传入的请求。 ASP.NET线程池饱和/阻塞的这种过度情况,导致请求在单个工作进程按顺序遍历每个请求时排队。
其次,正如您指出的那篇文章,请确保增加ASP.NET配置为处理的并发线程数。
注意,如果你的代码调用的代码将工作序列化为一个阻塞线程(例如用VB6编写的执行任何字符串操作的COM对象),那么你配置多少个工作线程并不重要 - 他们会所有被序列化为一个线程(因为VB6的字符串例程是单线程的)!这就是为什么网络花园&多个工作进程配置非常重要。
HTH。