在没有 IIS 的情况下部署 WCF 服务
Posted
技术标签:
【中文标题】在没有 IIS 的情况下部署 WCF 服务【英文标题】:Deploying a WCF service without IIS 【发布时间】:2011-08-02 07:48:22 【问题描述】:创建 WCF 服务后,有没有什么方法可以在没有 IIS 的情况下部署它?我创建的服务将只在 LAN 内使用,我不希望主机运行 ASP.NET 服务器只是为了托管 WCF 服务。
我需要能够做到这一点的另一个原因是因为我将使用的一个 DLL 不能很好地与 ASP.NET 一起使用。
【问题讨论】:
【参考方案1】:您可以在 Windows 服务和 IIS 中托管 WCF 服务:
How to: Host a WCF Service in a Managed Windows Service
Hosting and Consuming WCF Services
【讨论】:
如果我将 WCF 服务托管在 Windows 服务中,同一 LAN 上的其他机器是否仍然能够访问它? 是的,权限(和绑定)允许【参考方案2】:您可以在任何 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 事件模型。
【讨论】:
以上是关于在没有 IIS 的情况下部署 WCF 服务的主要内容,如果未能解决你的问题,请参考以下文章
我们可以在 IIS 中部署 Microsoft bot 应用程序以在没有 Azure 的情况下进行托管吗?