Преобразование WebServiceHost в приложение службы WCF

У меня есть работающее консольное приложение, где все адреса и настройки находятся в файле конфигурации. Но когда я пытаюсь переместить этот код в приложение службы WCF, я получаю все виды ошибок.

class Program
{
    static void Main(string[] args)
    {

        WebServiceHost host = new WebServiceHost(typeof(ImageService));
        host.Open();

        Console.WriteLine("Service up");
        Console.ReadLine();

        host.Close();
    }
}

Проблема заключается в том, что приложение службы WCF запускается автоматически и не имеет основного метода, такого как консольное приложение. Как определить службу WCF для запуска WebServiceHost, когда основной метод не существует?

2 ответа

Решение

Я нашел очень простое решение этой проблемы. Чтобы указать WCF использовать вместо этого веб-сервис, все, что нужно, это добавить его в файл.svc.

Factory="System.ServiceModel.Activation.WebServiceHostFactory"

Каким-то образом я открыл этот файл в Visual Studio, поэтому перешел в папку проекта и открыл ее с помощью блокнота. Мой сервис.svc-файл выглядит так:

<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.Service1" CodeBehind="Service1.svc.cs" Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>

Вы должны создать свой собственный сервис, наследуя от ServiceBase учебный класс. Переопределить OnStart() метод и откройте службу WCF в реализации. Переопределить OnStop() метод и закройте службу WCF в реализации.

Другие вопросы по тегам