【问题标题】:Deploying a WCF service without IIS在没有 IIS 的情况下部署 WCF 服务
【发布时间】:2011-08-02 07:48:22
【问题描述】:

创建 WCF 服务后,有没有什么方法可以在没有 IIS 的情况下部署它?我创建的服务将只在 LAN 内使用,我不希望主机运行 ASP.NET 服务器只是为了托管 WCF 服务。

我需要能够做到这一点的另一个原因是因为我将使用的一个 DLL 不能很好地与 ASP.NET 一起使用。

【问题讨论】:

    标签: asp.net wcf


    【解决方案1】:

    您可以在 Windows 服务和 IIS 中托管 WCF 服务:

    【讨论】:

    • 如果我将 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 事件模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      • 2012-02-22
      • 2021-05-12
      • 2012-10-22
      • 1970-01-01
      相关资源
      最近更新 更多