1

現在netTcpBinding、ポート 8000 でリッスンしているエンドポイントがあります。

app.config私はそのようにファイルにベースアドレスを設定しました

net.tcp://*:8000/TestProject/Service

これは期待どおりに機能し、サービスはポート 8000 でリッスンします。

私の問題は、このサービスがサードパーティのマシンに展開されることであり、ポートの衝突 (およびSystem.Net.SocketException別のアプリケーションで既に使用されているポートを開こうとしたときに発生する) が心配です。

例外を処理し、コードで使用可能IPGlobalPropertiesなポートを見つけて、空きポートを使用してベース アドレスを再作成することができますが、設定で動的ポートを使用するように WCF に指示する方法があることを望んでいましたapp.config

クライアント接続は、WS-Discovery を使用してサーバー エンドポイントを見つけるため、定義済みのポート番号を知る必要はありません。

4

1 に答える 1

1

これを app.config に追加できます。

<appSettings>
   <add key="Port" value="8000" />
</appSettings>

そして、コードでそれを読み取ります

string port = ConfigurationManager.AppSettings["Port"];

ポートを読み取った後、URL を作成する必要があります。

于 2013-07-27T06:58:15.457 に答える