2011-04-10 127 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事件模型。