0

WCF 接続のエンドポイントをプログラムで設定しようとしています。

以下は、私が使用しているコードです。誰かが何が問題なのかを特定するのに役立ちますか?

        Uri wsBaseAddress = new Uri("http://localhost:27198/");

        ServiceHost host = new ServiceHost(typeof(ServiceClient), wsBaseAddress);

        WSHttpBinding wshttpbinding = new WSHttpBinding();

        host.AddServiceEndpoint(typeof(IService), wshttpbinding, "ServiceClient");
        host.AddServiceEndpoint(typeof(IService), wshttpbinding,
           "http://localhost:27198/Service.svc");

        host.Open();

編集:

エラー: TCP ポート 27198 が別のアプリケーションで使用されているため、HTTP は URL "http://+:27198/" を登録できませんでした。

ありがとうございました

4

2 に答える 2

1

TCP ポート 27198 が別のアプリケーションによって使用されているため、HTTP は URL "http://+:27198/" を登録できませんでした。

これはほとんどすべてを物語っています。現在そのポートでリッスンしている別のアプリケーションがあり、特定の時点で特定のポートと IP にバインドできるのは 1 つのアプリケーションだけであるため、プログラムはできません。

実行netstat -abncmdて、ASP.NET 開発サーバーである可能性が最も高いプログラムを確認します。

そのポートに他のプログラムがバインドされていない場合は、Visual Studio を管理者として実行してみてください。

于 2012-06-15T13:41:37.290 に答える
0

以下のステートメントは、サービス名を提供していませんが、エンドポイントを追加した最後のステートメントでは使用されていません

 Uri wsBaseAddress = new Uri("http://localhost:27198/");

そのはず

 Uri wsBaseAddress = new Uri("http://localhost:27198/Service");

拡張子付きのサービスファイル名ではなく、サービス名を提供する必要があります

変化する

host.AddServiceEndpoint(typeof(IService), wshttpbinding,
           "http://localhost:27198/Service.svc");

 host.AddServiceEndpoint(typeof(IService), wshttpbinding,
           "http://localhost:27198/Service");
于 2012-06-15T13:42:05.353 に答える