Могу ли я разместить службу WCF в службе Windows? - PullRequest
2 голосов
/ 11 марта 2011

Я создал проект WCF, выбрав Добавить новый проект -> Библиотека сервисов WCF, и когда я запускаю его в среде разработки, он открывает тестовый клиент WCF. Как установить этот сервис на сервере, на котором не установлена ​​Visual Studio (я не хотел бы размещать его на IIS). Должен ли я написать новую службу Windows?

Ответы [ 3 ]

5 голосов
/ 11 марта 2011

Создайте проект службы Windows.

Добавьте службу WCF в этот проект.

В главном классе службы Windows (по умолчанию Service1.cs) добавьте члена:

internal static ServiceHost myServiceHost = null;

Измените OnStart (), чтобы запустить новый ServiceHost с типом службы WCF:

 protected override void OnStart(string[] args)
    {
        if (myServiceHost != null)
        {
            myServiceHost.Close();
        }

        myServiceHost = new ServiceHost(typeof(MyService));
        myServiceHost.Open();
    }

Изменить OnStop ():

protected override void OnStop()
    {
        if (myServiceHost != null)
        {
            myServiceHost.Close();
            myServiceHost = null;
        }
    }

Добавить проект установки и развертывания(Настройка проекта) к вашему решению.Установите выходные данные этого проекта в качестве основного вывода проекта службы Windows.При создании проекта установки и развертывания вы должны увидеть файл Setup.exe, который можно использовать для установки службы.

Имейте в виду, что вам все еще нужно настроить конечные точки и привязки.Изучите использование nettcpbinding для этой настройки.

В качестве заключительного примечания укажите: Ошибка 5: доступ запрещен при запуске службы Windows , если у вас возникают проблемы при запуске службы Windows после установки.

0 голосов
/ 11 марта 2011

Взгляните на библиотеку TopShelf . Я использовал его для создания ряда служб WCF.

СОВЕТ: Если вы планируете писать больше сервисов WCF, возможно, вам стоит почитать о совместном использовании портов.

0 голосов
/ 11 марта 2011

Вам необходимо создать проект службы Windows, а затем добавить ссылку на службу WCF и разместить ее.Для установки сервиса вам не нужна визуальная студия, вам нужно использовать installutil.exe.

Посмотрите здесь .

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