在过去的两天里,我一直在用头撞砖墙,试图在 MSDN 上成功使用这个例子:
如果您按照示例将消费者应用程序放在同一个解决方案中,那么它会成功运行 - 即使服务已关闭!
如果服务已打开并且消费者应用程序被发布到不同的网络驱动器,那么它将不会运行,因为 WCF 没有在侦听。
演练中的以下代码是罪魁祸首:
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(Service1));
myServiceHost.Open();
}
我的朋友注意到,如果我们更改new ServiceHost(typeof(Service1));
为,new ServiceHost(typeof(WcfServiceLibrary1.Service1));
那么 WCF 将真正开始倾听!
很容易看出它的混乱,因为在 Windows 服务项目以及 WCF 项目中有一个名为 Service1 的类,因此需要完整的资格。
有没有其他人遇到过这个?