2013-03-20 2 views
0

У меня есть рабочее консольное приложение, в котором все адреса и конфигурация находятся в файле конфигурации. Но когда я пытаюсь переместить этот код в приложение службы WCF, я получаю всевозможные ошибки.Преобразование WebServiceHost в приложение службы 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, если не существует основного метода?

+0

Вы хотите самостоятельно разместить эту службу WCF? Когда вы говорите, что ваш проект подключается к шине Azure Service, что это такое. Вы пытаетесь выполнить вызов своей службы WCF, которая внутренне вызывает Azure Service Bus? – Rajesh

+0

Я пытаюсь настроить службу, которая может быть вызвана из реле шины Azure Service, используя REST. Это отлично работает с сервисом, инициализированным как выше. Конечно, я не хочу использовать консольное приложение, которое я использую сейчас, поэтому я хочу преобразовать его в службу WCF, размещенную в IIS. – Zeezer

ответ

0

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

Factory="System.ServiceModel.Activation.WebServiceHostFactory" 

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

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

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

+0

Как это делается? Я попытался наследовать из ServiceBase и переопределить OnStart() в приведенном выше примере, но нужно добавить что-то еще больше, метод OnStart() никогда не вызывается – Zeezer

+0

Создайте экземпляр своей службы и вызовите OnStart() – flayn

+0

Какой проект у вас есть? – flayn