次のコードがあります...
DiscoveryService.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();
}
Client.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 (接続がアクティブに拒否されました) が発生します。ただし、誰が拒否したのか、理由はわかりません。コードを以前の状態に戻そうとすると、それが機能していたときにできません。プロジェクトに何かを追加/削除した後 (そう思われる)、単に機能しなくなります。
私が構築するたびに、最初に掃除します。また、ここに掲載されている指示に従っています。
何かご意見は?