C# 按需启动自托管WCF服务
是否可以按需启动自托管WCF服务? 我认为有两种方法可以实现这一目标:C# 按需启动自托管WCF服务,c#,.net,wcf,web-services,self-hosting,C#,.net,Wcf,Web Services,Self Hosting,是否可以按需启动自托管WCF服务? 我认为有两种方法可以实现这一目标: 在自托管WCF的web服务器中插入侦听器,并在WCF开始查找该端点之前,在收到特定服务请求时启动服务主机;或 集成进程中的web服务,为请求启动服务主机(如果请求尚未运行),并将请求重定向到该服务主机(就像我怀疑IIS所做的那样) 我无法使用IIS或WAS,因为web服务需要使用UI业务逻辑在进程中运行 哪些是可行的,我如何才能做到这一点? 编辑: 我不能仅仅启动服务主机,因为有数百台,其中大部分(约95%)从未使用过,
- 在自托管WCF的web服务器中插入侦听器,并在WCF开始查找该端点之前,在收到特定服务请求时启动服务主机;或
- 集成进程中的web服务,为请求启动服务主机(如果请求尚未运行),并将请求重定向到该服务主机(就像我怀疑IIS所做的那样)
我不能仅仅启动服务主机,因为有数百台,其中大部分(约95%)从未使用过,但需要可用。这用于公开包含900个实体的业务逻辑层。您可以进行定位器服务设置。基本上总是公开一个轻量级服务,该服务返回“实际”服务的地址。每次请求特定服务的地址时,请继续并使其加速 如果您担心清理它,您可以保留一个服务主机列表,并在某种非活动超时情况下连接,以便定期关闭服务主机
这里有一些设计方面的问题——“在调用另一个服务之前调用一个服务”的概念在某种程度上可能被认为是一个坏主意(听起来像是耦合两个服务的状态) 走了以下路线:
- 创建单个服务主机
- 创建实现所有服务接口的动态代理
- 为动态代理实现的每个接口添加服务端点
- 从动态代理发送到正确的实现