2015-04-08 3 views
0

У меня очень сложный сценарий, в котором мои службы динамически загружаются и все делается программно. В частности, у меня есть служба, которая имеет 2 конечные точкиЗвонящий сервис от самого хоста

net.pip: // локальный/тест net.pipe: // локальный/тест/MEX

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

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

private IAgentBase GetLocalClient(string serviceEndpointName) 
    { 
     var factory = new ChannelFactory<IAgentBase>(serviceEndpointName); 
     return factory.CreateChannel(); 
    } 

Это делает возвращает прокси-сервер, а затем я вызвать метод на службу ...

var proxy = GetLocalClient("net.pipe://localhost/test"); 
    proxy.DoThis(); 

Но код просто идет куда-нибудь - не продолжает работать и без ошибок. Заявление никогда не завершается. Когда я перешагнуть эту линию или установить BP или попробовать поймать, он никогда не завершает вызов метода

ответ

0

Измените ваш GetLocalClient к следующему

public IAgentBase GetlocalClient(string ed) 
    { 
     EndpointAddress edi = new EndpointAddress(ed); 
     var channel = ChannelFactory<IAgentBase>.CreateChannel(new NetNamedPipeBinding(), edi); 
     return channel; 
    } 
+0

Я пробовал - то же самое. То, что происходит, это время, но не предлагает больше информации, чем это. – Jeff

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