我们有以下代码...
发现服务.cs
[ServiceContract]
public interface IDiscoveryService
{
[OperationContract]
void PrintHello();
}
public class DiscoveryService : IDiscoveryService
{
public void PrintHello()
{
MessageBox.Show("Hello");
}
}
服务器.cs
private void InitializeDiscovery()
{
Uri baseAddress = DiscoveryHelper.AvailableTcpBaseAddress;
ServiceHost host = new ServiceHost(typeof (DiscoveryService), baseAddress);
host.EnableDiscovery();
host.Open();
}
客户端.cs
private void DiscoverAddressClick(object sender, EventArgs e)
{
EndpointAddress address = DiscoveryHelper.DiscoverAddress<IDiscoveryService>();
Binding binding = new NetTcpBinding();
IDiscoveryService proxy = ChannelFactory<IDiscoveryService>.CreateChannel(binding, address);
proxy.PrintHello();
(proxy as ICommunicationObject).Close();
}
现在,这段代码似乎一直有效,直到我们修改与服务合同有关的任何内容,此时我们得到一个 TCP 异常,错误代码 10061(主动拒绝连接)。但是,我们无法弄清楚谁在拒绝,或者为什么。如果我们试图将我们的代码恢复到以前的状态,当它工作时,我们不能,它只是在(似乎)我们从项目中添加/删除东西之后拒绝工作。
每次我建造时,我都会先清洁。我们也遵循此处发布的说明。
有什么想法吗?