Я новичок в 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, но я понятия не имею, как реализовать это в мой код, чтобы он работает.
Вы хотите вызвать функции WCF, которые вы внедрили? –
Вам необходимо создать ** клиент ** для этой службы (используя 'svcutil' в командной строке или используя« Добавить служебную ссылку »внутри Visual Studio) и вызвать этот метод, который вы хотите –
Да. Я хочу вызвать функцию WCF, которую я размещал в том же проекте. Я попытался добавить ссылку на службу раньше, но она не будет работать в том же проекте, что и служба. Я предполагаю, что вы имеете в виду, что я хочу вызвать функцию на клиенте, но я не хочу ее вызывать с сервера (консольное приложение) –