背景 - 私はnetTcpBindingを実装するWCFサービスを自己ホストしたいので、Windows Server 2003/IIS6と互換性がなければなりません。私が見しようとしていますApplication_Startの自己ホスティングnetTcpBindingサービス
場合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で動作させることができますか?それは、コンソールapp/windowsサービス経由で自己ホストする必要がありますか、上記のようにglobal.asax内で自分自身をホストすることはできますか?
ありがとうございました。
なぜIIS6内で自己ホストするのですか?何か理由は?そのようにインスタンスを管理するのは難しいでしょう。私はそれが最初にコンソールアプリで動作するかどうかを確認します。 – maxbeaudoin
私はこれを既存のWebアプリケーションと統合しています。 –
コンソールでサービスを自己ホストしてみましたか? WcfTestClient.exeを使用してサービスをテストします。あなたがそれを把握できない場合はトレースを有効にしてください。それらは良いWCFデバッグのヒントです。 – maxbeaudoin