2015-02-07 3 views
1

У меня есть сервисное приложение WCF и приложение форм Windows. Я хочу получить некоторые данные из WCF, но он запускается автоматически только из IDE.Запустить приложение-службу WCF из другого приложения (C#)

Мой вопрос прост: как я могу запустить приложение службы WCF из приложения форм Windows?

UPD: эти 2 приложения имеют различную битовость, поэтому их нельзя размещать в одном процессе.

+0

установлена ​​ли служба? Если да, то как его зовут? – rene

+0

@rene нет, это не – AndrewR

+0

взгляните на мой обновленный ответ –

ответ

1

вы можете использовать ServiceHost класса
что-то вроде этого

public static void Main() 
{ 
    using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService))) 
    { 
    try 
    { 
     // Open the ServiceHost to start listening for messages. 
     serviceHost.Open(); 

     // The service can now be accessed. 
     Console.WriteLine("The service is ready."); 
     Console.WriteLine("Press <ENTER> to terminate service."); 
     Console.ReadLine(); 

     // Close the ServiceHost. 
     serviceHost.Close(); 
    } 
    catch (TimeoutException timeProblem) 
    { 
     Console.WriteLine(timeProblem.Message); 
     Console.ReadLine(); 
    } 
    catch (CommunicationException commProblem) 
    { 
     Console.WriteLine(commProblem.Message); 
     Console.ReadLine(); 
    } 
    } 
} 

Но вы можете адаптировать его к WinForms легко или, если вы хотите, вы можете Host a WCF Service in a Managed Windows Service

+0

Если я вызываю его из приложения winforms, служба будет размещаться в том же процессе, я прав? – AndrewR

+0

да, вы правы –

+0

И нет способа избежать этого? Приложение WCF и winforms имеют разную битту, поэтому он не будет работать таким образом. – AndrewR

Смежные вопросы