2011-04-10 92 views
0

在创建WCF服务之后,有没有办法在没有IIS的情况下部署它?我创建的服务只能在局域网内使用,我宁愿没有主机运行ASP.NET服务器来托管WCF服务。在没有IIS的情况下部署WCF服务

我需要能够做到这一点的另一个原因是因为我将使用的DLL中的一个不能很好地与ASP.NET一起使用。

回答

3

您可以在任何EXE托管WCF服务,不只是一个Windows服务。你必须编写一些代码来主持,但它是微不足道的:

using System; 
using System.ServiceModel; 
using System.ServiceProcess; 

namespace MyService.Hosts 
{ 
    public partial class MyWindowsService : ServiceBase 
    { 
     ServiceHost host; 

     public MyWindowsService() 
     { 
      InitializeComponent(); 
     } 

     protected override void OnStart(string[] args) 
     { 
      Type serviceType = typeof(MyWcfService); 
      host = new ServiceHost(serviceType); 
      host.Open(); 
     } 

     protected override void OnStop() 
     { 
      if(host != null) 
       host.Close(); 
     } 
    } 
} 

顺便说一句,如果部署使用IIS,你得到所有的IIS提供了免费的演员,包括简单的网络部署,集成安全性,而ASP .NET事件模型。