创建WCF服务后,有没有办法在没有IIS的情况下部署它?我创建的服务只能在局域网中使用,我宁愿让主机只运行一个ASP.NET服务器来托管WCF服务。
我需要能够做到这一点的另一个原因是因为我将使用的其中一个DLL在ASP.NET中不能很好地工作。
答案 0 :(得分:6)
您可以在Windows服务和IIS中托管WCF服务:
答案 1 :(得分: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提供的所有附加功能,包括简单的Web部署,集成安全性和ASP.NET事件模型。