WCF代理池/管理器
我的应用程序需要与多个外部WCF服务通信,以满足客户端应用程序的请求。作为一个WCF服务,它当然必须能够同时处理多个请求。也就是说,由于我将访问多个服务,我考虑按以下方式对客户端进行分组:WCF代理池/管理器,wcf,client,pool,Wcf,Client,Pool,我的应用程序需要与多个外部WCF服务通信,以满足客户端应用程序的请求。作为一个WCF服务,它当然必须能够同时处理多个请求。也就是说,由于我将访问多个服务,我考虑按以下方式对客户端进行分组: public static class ClientManager { private static readonly Service1Client _service1Client = new Service1Client(); private static readonly Service2
public static class ClientManager
{
private static readonly Service1Client _service1Client = new Service1Client();
private static readonly Service2Client _service2Client = new Service2Client();
...
public static Service1Client Service1DefaultClient { get { return _service1Client; } }
public static Service2Client Service2DefaultClient { get { return _service2Client; } }
}
然后,从剩下的代码中,我只需要执行
ClientManager.Service1DefaultClient.SomeMethod();
ClientManager.Service2DefaultClient.SomeMethod();
...
其想法是创建一个中心位置,以便更好地管理WCF客户端。但是,对于同时向
Service1DefaultClient
和Service2DefaultClient
发出多个请求的服务,我真的不知道这种设计是否最合适。你有什么建议?创建一个更复杂的客户端池,每个服务中有几个代理可供选择?拥有静态客户端代理对我来说不是个好主意
- 如果ClientBase实例转换到故障状态,它将变得不可用,您必须重新创建它李>
- 如果您有一个有状态的服务,会话生存期将与客户机代理对象的生存期相同,在您的情况下,它非常长
- 根据您的绑定设置,ClientBase将在同一个代理实例上创建。在您的情况下,这可能会严重影响性能
- 我只是不知道这能解决什么问题
代理是相对轻量级的,因为有,所以每次需要时我都会创建一个新实例。拥有静态客户端代理对我来说不是个好主意
- 如果ClientBase实例转换到故障状态,它将变得不可用,您必须重新创建它李>
- 如果您有一个有状态的服务,会话生存期将与客户机代理对象的生存期相同,在您的情况下,它非常长
- 根据您的绑定设置,ClientBase将在同一个代理实例上创建。在您的情况下,这可能会严重影响性能
- 我只是不知道这能解决什么问题