背景は次のとおりです。netTcpBindingを実装するWCFサービスをセルフホストしたいのですが、Windows Server 2003/IIS6と互換性がある必要があります。
global.asaxのApplication_Startイベント中にセルフホストできるかどうかを確認しようとしています。
protected void Application_Start(object sender, EventArgs e)
{
NetTcpBinding binding = new NetTcpBinding();
binding.PortSharingEnabled = true;
ServiceHost host = new ServiceHost(typeof(Svc), new Uri("net.tcp://xxx.x.xxx.xx:1100"));
string address = "Tcp";
host.AddServiceEndpoint(typeof(IService), binding, address);
host.Open();
}
しかし、サービスを呼び出そうとすると、クライアントでこれを受け取ります。
Could not connect to net.tcp://xxx.x.xxx.xx:1100/Tcp. The connection attempt lasted for a time span of 00:00:01.0630608. TCP error code 10061: No connection could be made because the target machine actively refused it xxx.x.xxx.xx:1100.
私の最初の本能は、これがポートの問題であるかどうかを確認することだったので、クライアントで関連するポートを開きましたが、それは役に立ちませんでした。サーバーのポートは重要でしょうか?それ以外の方法でポートにアクセスできます。
または、IIS6を使用しているためにこれが発生している場合、IIS6でこれを機能させるために、セルフホスティングを使用したどのような回避策を使用できますか?コンソールアプリ/Windowsサービスを介してセルフホストする必要がありますか、それとも上記のようにglobal.asax内でセルフホストできますか?
ありがとう。