在創建WCF服務之後,有沒有辦法在沒有IIS的情況下部署它?我創建的服務只能在局域網內使用,我寧願沒有主機運行ASP.NET服務器來託管WCF服務。在沒有IIS的情況下部署WCF服務
我需要能夠做到這一點的另一個原因是因爲我將使用的DLL中的一個不能很好地與ASP.NET一起使用。
在創建WCF服務之後,有沒有辦法在沒有IIS的情況下部署它?我創建的服務只能在局域網內使用,我寧願沒有主機運行ASP.NET服務器來託管WCF服務。在沒有IIS的情況下部署WCF服務
我需要能夠做到這一點的另一個原因是因爲我將使用的DLL中的一個不能很好地與ASP.NET一起使用。
您可以在任何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事件模型。
您可以承載在Windows服務的WCF服務,以及IIS:
如果我將其託管在Windows服務中,同一LAN上的其他機器是否仍然能夠訪問WCF服務? – rafale 2011-04-10 02:29:36
是的,權限(和綁定)允許 – 2011-04-10 04:34:38