我需要从客户端远程生成远程计算机上的WCF服务。我不能使用IIS(没有HTTP)或WAS(没有Windows Server 2008)。
想知道除了这些托管环境之外是否有办法做到这一点,而无需在负责产生其他WCF服务的远程机器上创建服务。
如果Windows服务主机是唯一的方法,那么有人可以指向我一篇好的文章或书籍,以获得有效的架构(包括生成的WCF服务的生命周期管理)。
由于 理子
答案 0 :(得分:3)
如果您无法使用IIS / WAS,那么您只能选择自托管。
您可以在Windows(NT)服务或控制台应用程序或您希望拥有的任何其他应用程序中托管WCF服务。
关键是:除了IIS / WAS之外,它将根据需要加载您的服务类,当请求进入并需要处理时,在自托管环境中,您必须启动并运行您的主机应用程序 - 这就是为什么NT服务似乎是至少在生产环境中的最佳选择,即使没有人登录到计算机也能运行的服务。控制台或其他应用程序需要用户登录,并且应用程序必须正在运行。
希望这有点帮助。
马克
答案 1 :(得分:1)
您可以在Server 2003上使用另一个选项 - 在COM +中托管WCF服务: http://msdn.microsoft.com/en-us/library/bb735856.aspx
这不像在Server 2008上托管WAS中的非HTTP服务那么容易,但提供了比作为NT服务托管更好的支持监视和部署模型。一般来说,根据我的经验,我认识的大多数人都使用NT服务,因为在.NET中生成一个是相当简单的,然后他们使用计数器或类似的东西在生产中监视它们。