WCF percall实例导致OutOfMemoryException

时间:2018-06-21 10:12:46

标签: c# .net wcf

我们有一个WCF服务,该服务调用第三方文档管理系统来上载和检索文档。 文档被上载并作为byte []检索。 最近有很多问题导致文档无法上传等。 较早的配置是这样的:

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single, 
                 ConcurrencyMode = ConcurrencyMode.Multiple)]

第三方小组后来告诉我们,他们不支持多线程,因此我们将设置更改为:

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall, 
                 ConcurrencyMode = ConcurrencyMode.Single)]

此更改之后,一切开始正常运行,故障率急剧下降。 但是我们开始出现内存不足异常-该服务每天至少关闭两次。据我所知,我们没有在应用程序中维护任何会话数据。此WCF应用程序由同一服务器上托管的另外两个WCF应用程序使用(它们在默认设置下运行)。 我想知道percall,单线程是否是WCF应用程序的最佳配置。

0 个答案:

没有答案