Развертывание службы WCF без IIS - PullRequest
0 голосов
/ 10 апреля 2011

После создания службы WCF можно ли ее развернуть без IIS?Созданный мною сервис будет использоваться только в локальной сети, и я бы предпочел, чтобы хост не запускал сервер ASP.NET только для размещения сервиса WCF.

Другая причина, по которой мне нужносделать это потому, что одна из библиотек, которые я буду использовать, не очень хорошо работает с ASP.NET.

Ответы [ 2 ]

6 голосов
/ 10 апреля 2011
3 голосов
/ 11 апреля 2011

Службу WCF можно разместить в любом EXE-файле, а не только в службе 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...