我有一个企业系统,由少数WinForms客户端和面向公众的ASP.NET站点使用.后端WCF服务提供了每个客户端要使用的几种服务.这些服务需要消息凭据,在WinForms应用程序的情况下,在程序首次启动时由用户提供.
我在WinForm应用程序中缓存ChannelFactories以提高性能.我想在ASP.NET站点上做同样的事情.但是,由于ClientCredentials存储为factory(ChannelFactory<T>.Credentials)的一部分,我是否需要为每个用户的每个服务缓存一个ChannelFactory?似乎即使在适度使用下也会很快加起来.另外,我相信我需要将它们存储在应用程序级别,而不是会话级别,因为为了将来的可伸缩性,我无法保证我将始终使用InProc会话状态.
我没有看到任何方法可以为每个服务创建一个ChannelFactory,然后在创建通道时指定凭据.我错过了什么吗?