具有工作线程限制的WCF

本文关键字:WCF 线程 工作 | 更新日期: 2023-09-27 18:25:01

我已经围绕一个旧的COM/OLEServer实例编写了一个.net包装器。它是一个有状态的包装器,需要几个初始化调用,然后是最后的"go/caculate调用"。

此最后一个调用创建类的新实例,然后使用System.Threading.thread创建一个新线程,该线程创建COM实例并使其能够与IIS工作线程分开运行,随后调用以检查状态并最终获得结果。

问题是,当我尝试创建20多个并发实例时,会出现内存不足的异常。我尝试过各种调整——创建多个工作线程没有帮助,因为它具有状态性(我相信)。我试过很多这种

http://www.codeproject.com/Articles/133738/Quick-Ways-to-Boost-Performance-and-Scalability-of

没有用。在我的压力测试仪中,我尝试直接实例化包装器类,而不是通过WCF服务,在我开始遇到问题之前,我可以运行>150个实例。

有人知道如何增加IIS贪得无厌可能产生的工作线程数量吗?

具有工作线程限制的WCF

听起来你可能会从使用网络花园中受益。将应用程序池中的最大工作进程设置为>1。

在这种情况下,它们可以帮助在整个过程中增加,但理想情况下,您应该查看代码来识别和优化瓶颈。

https://serverfault.com/questions/81689/web-gardens-are-they-good-or-bad-or-what

注意缺点是:进程内会话状态不在应用程序池中维护,如果使用asp-http缓存,则每个进程都有自己的缓存副本。