2009-05-05 6 views
1

WebHttpBindingで設定されたIISホストWCFサービスがあります。これは、VS2008が新しいWCFサービスを作成するときに作成する同じ既定のWCFサービスです。私が作った唯一の変更は、それがjavascriptから呼び出されるようにすることです。リモートクライアントのWCFで奇妙なポートが報告されています

テストメソッドGetData(int value)では、リモートクライアントのIPアドレス、ポート、およびユーザーエージェントを表示する文字列を返します。私が戻ってくるポート番号を期待していない限り、すべてうまく動作します。私はポート80を期待していますが、代わりに49353のようなものを手に入れます。以下は私が呼び出す方法です。

public string GetData(int value) 
    { 
     OperationContext context = OperationContext.Current; 

     MessageProperties messageProperties = context.IncomingMessageProperties; 
     RemoteEndpointMessageProperty endpointProperty = messageProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty; 



     return string.Format("Hello {0}! \r\naddress: {1}\r\nport: {2}\r\nuseragent: {3}", 
      value, endpointProperty.Address, endpointProperty.Port, WebOperationContext.Current.IncomingRequest.UserAgent); 
    } 

私が言ったように、私はjavascriptからこのメソッドを呼び出しています。 IISはポート80用に構成されているため、ポートが間違ってレポートされている理由がわかりません。

答えて

3

私はあなたがこれを後ろ向きにしているかもしれないと思います。ポート80はあなたが聴いている場所ですが、一度それが起こると、その接続を処理するために新しい一時ポートにそれを渡します。

クライアントはまた、一時的なポートを使用してポート80への接続を開いている可能性があります。したがって、クライアントのポートは、一般的な「固定」ポート範囲(0〜1024)

+0

Doh!あなたが正しいと確信しています。そのすべての雨がここに集まって、私は疲れました。リフレッシュしてくれてありがとう。 –

関連する問題