C# WCF:Windows服务在Winforms应用程序中托管时找不到终结点
我需要Windows服务对WinForms应用程序中托管的服务进行WCF调用 不幸的是,在尝试调用时,Windows服务无法发现端点 我已尝试更改Windows服务的登录属性以允许与桌面交互,但这没有帮助 我在控制台应用程序中使用了与WinForms应用程序完全相同的托管代码,Windows服务发现端点没有问题 任何帮助都将不胜感激 在WinForms应用程序中托管服务的代码C# WCF:Windows服务在Winforms应用程序中托管时找不到终结点,c#,.net,wcf,windows-services,C#,.net,Wcf,Windows Services,我需要Windows服务对WinForms应用程序中托管的服务进行WCF调用 不幸的是,在尝试调用时,Windows服务无法发现端点 我已尝试更改Windows服务的登录属性以允许与桌面交互,但这没有帮助 我在控制台应用程序中使用了与WinForms应用程序完全相同的托管代码,Windows服务发现端点没有问题 任何帮助都将不胜感激 在WinForms应用程序中托管服务的代码 _myServiceHost = new ServiceHost(typeof(MyService); _myServ
_myServiceHost = new ServiceHost(typeof(MyService);
_myServiceHost.AddServiceEndpoint
(
typeof (IMyService),
new NetNamedPipeBinding(),
@"net.pipe://localhost/MyService"
);
_myServiceHost.Open();
来自客户端代理的代码
_serviceFactory = new ChannelFactory<IMyService>
(
new NetNamedPipeBinding(),
"net.pipe://localhost/MyService"
);
...
IMyService clientProxy = _serviceFactory.CreateChannel();
clientProxy.SomeMethod();
\u serviceFactory=新通道工厂
(
新建NetNamedPipeBinding(),
“净。pipe://localhost/MyService"
);
...
IMyService clientProxy=_serviceFactory.CreateChannel();
clientProxy.SomeMethod();
此问题似乎与windows服务运行时的安全上下文有关,该上下文阻止WinForms应用程序承载的端点对服务可见,但不会阻止vica对服务可见
更新:
我尝试将绑定从NetNamedPipeBinding更改为NetTcpBinding,但这种类型的绑定似乎可以正常工作。您确定已将app.config放在适当的位置,并且已打开服务主机吗? 问题一定在这方面。并且windows服务在此处没有角色,请与wcftestclient一起检查,并尝试在web浏览器中查看wsdl(如果已启用) 但我主要相信你还没有打开主机:
ServiceHost host = new ServiceHost(....);
host.Open(); // check is it successfully called
这项服务肯定是托管的。我尝试了console和winforms应用程序来测试服务主机(完全相同的代码)。我还有一个测试应用程序,它使用相同的客户端代理,工作正常,似乎只有Windows服务->Winforms失败。Windows服务->控制台应用程序(确定)Windows服务->WinForms应用程序(失败)WinForm应用程序->WinForm应用程序(确定)所有三种配置都使用相同的客户端代理代码和相同的服务托管代码。目前没有app.config,绑定目前仅在代码中。@M.Williamson也说过,请更新问题并将代码放在那里。客户端和服务器在同一台机器上,对吗??NetNamedPipe只在同一台机器上工作……是的,它们在同一台机器上。