2009-05-05 75 views
1

我有一个IIS托管的WCF服务配置了WebHttpBinding。这是VS2008在创建新WCF服务时创建的相同默认WCF服务。我所做的唯一更改是允许从JavaScript调用它。在WCF中为远程客户端报告的奇怪端口

在测试方法GetData(int value)中,我返回一个显示远程客户端IP地址,端口和useragent的字符串。一切正常,除非我不期待它返回的端口号。我期待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!我敢打赌,你是对的。我们在这里遇到的所有雨水都让我感到厌倦。感谢您的复习。 – 2009-05-05 19:09:14