多线程应用中的WCF代理单例模式

3

我刚刚继承了一个在.NET 4上运行的ASP.NET MVC 3站点,它大量使用WCF调用非常缓慢的外部服务。该站点还未上线。

我发现了一个奇怪的代码片段,涉及到WCF客户端代理的使用。为整个aspnet应用程序创建了一个实例,该实例在所有线程之间共享。因此,实际上是全局变量。

对我来说,这种做法非常危险,但该站点即使在负载测试下也没有出现错误。该站点中没有防止WCF客户端并发调用的保护代码。

有人能确认在ASP.NET应用程序中使用本质上是单例WCF代理的安全性吗?如果出现故障,会不会杀死所有线程的代理?

1个回答

4
我希望您能确认在asp.net应用程序中使用本质上是单例WCF代理的安全性?如果出现故障,是否会杀死所有线程的代理?
代理是线程安全的,但正如您所说,它应该小心处理,因为它可能处于故障状态,在这种情况下,通道应该再次打开。您可以查看我一直在使用的以下示例实现以重复使用相同的通道工厂。昂贵的是通道工厂的创建,而不是通道本身。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接