2015-08-30 3 views
2

Я новичок в WCF и предоставляю службу WCF в консольном приложении, где теперь я хочу вызвать функцию внутри службы.Функция вызова собственной службы wcf

Program.cs:

static void Main(string[] args) 
{ 
    var host = new ServiceHost(typeof(TestService)); 
    host.Open(); 
    Console.WriteLine("Service started at {0}", DateTime.Now); 
    Console.ReadLine(); 
    host.Close(); 
} 

TestService содержит функцию, я хочу позвонить прямо сейчас.

App.config:

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service name="TestServer.TestService"> 
     <endpoint address="" binding="wsDualHttpBinding" contract="TestServer.ITestService"> 
      <identity> 
      <dns value="localhost"/> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:8090/TestService/"/> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    </system.serviceModel> 

я узнал, что я должен пользователь ChannelFactory, но я понятия не имею, как реализовать это в мой код, чтобы он работает.

+0

Вы хотите вызвать функции WCF, которые вы внедрили? –

+0

Вам необходимо создать ** клиент ** для этой службы (используя 'svcutil' в командной строке или используя« Добавить служебную ссылку »внутри Visual Studio) и вызвать этот метод, который вы хотите –

+0

Да. Я хочу вызвать функцию WCF, которую я размещал в том же проекте. Я попытался добавить ссылку на службу раньше, но она не будет работать в том же проекте, что и служба. Я предполагаю, что вы имеете в виду, что я хочу вызвать функцию на клиенте, но я не хочу ее вызывать с сервера (консольное приложение) –

ответ

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