2

自己ホスト型の WCF サービスを備えたアプリがあります。

私の WCF サービスは、URI "net.tcp://localhost:8004/DocumentService" で公開されます。リモート マシンでサービスを実行し、新しい .NET 4 クラス DiscoveryClient を使用してサービスを検出しようとすると、検出されたすべてのサービスに URI "net.tcp://localhost:8004/DocumentService" があり、サーバーに関する情報はありません。サービスがホストされている実際のマシン。

リモートマシンでサービスにアクセスしたい場合、これは明らかに役に立ちません。しかし、FindProgressChanged に渡された引数に、実際のリモート マシン (IP アドレスまたはサーバー名) への参照が見つかりません。

リモート マシンに関する情報を取得する方法はありますか? または、リモート マシンのマシン名でサービスを公開する必要がありますか? それとも、DiscoveryClient が壊れているだけですか?

これが理にかなっていることを願っています。

4

1 に答える 1

4

この問題の調査に多くの時間を費やしました。コードでベースアドレスを構築することは、トランスポートスキームとポートをハードコーディングすることを意味するため、私には受け入れられませんでした(後者はもちろん、別の構成セクションに保存できますが、既存のセクションを使用しないのはなぜですか?)。いつものように config でベースアドレスを設定する機能が欲しかったのです。そして、次のようなベースアドレス<add baseAddress="net.tcp://*:8731/"/>が完全に機能することがわかりました。プログラムによる構成についても同じことが当てはまると思います。

于 2010-12-20T12:10:40.253 に答える