在创建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