2016-08-22 4 views
0

私はWCFサービスからクライアントIPを取得するいくつかの方法を知っていますが、サーバーIPを取得できません。WCFクライアントからロードバランサの背後でサービスIPを取得することは可能ですか?

サービスにいくつかの変更を加えることができるので、IPアドレスを返すことができますが、サービスを変更せずにこれを実行しようとしています。

私のシナリオ:私は(192.168.0.1に解決などservices.company.com、)負荷バランスで実行DNSによってサービスを呼び出すので、私は、要求を応答しているサーバーを知ることができません (192.168.0.10または192.168.0.11)。

enter image description here

ログ目的のために、私は私の要求を処理しているサーバー知っていただきたいと思います。

おそらくそれは不可能だと思いますが、誰かが私を助けたり手がかりを与えることができますか?

+0

WCFサービスを所有している場合は、応答ヘッダーにIPまたはホスト名を挿入できます。あなたがそれを所有していないなら、そうする方法はありません。 –

+0

@LexLiありがとうございます。はい、おそらくサービスだけがこの情報を送ることができると思っていましたが、私はそれをやり遂げるための何かの方法かもしれないという希望を持っていました。 –

答えて

0

私が思ったように、サーバー側でIPを変更することなく、サーバーからIPを取得する方法はありませんでした。 しかし、私はすべてのサービスを変更することなく、目標をヒットしようとしました、と私は、このアプローチになってしまった:

https://www.iis.net/configreference/system.webserver/httpprotocol/customheaders

私がサービスを利用するとき、私はそう、私のIISサーバーにカスタムヘッダを追加しましたサーバーはヘッダーに値を追加し、クライアントで回復することができます。 は、基本的には、IISマネージャでカスタムヘッダーを追加したり、設定ファイルに追加することができ、system.webServerノードにそれらの行を追加:

<httpProtocol> 
    <customHeaders> 
     <add name="X-ServerName" value="myServerNameOrIP" /> 
    </customHeaders> 
</httpProtocol> 

これは、サーバーレベルで、または特にいくつかのアプリケーションに行うことができます。これは問題を解決しました。

もちろん、私はこれを内部サーバーに置いていますが、外部のクライアントがこの情報を受け取ることは望ましくありません。

関連する問題