在WCF中为远程客户端报告了奇怪的端口

时间:2009-05-05 19:01:31

标签: c# javascript wcf

我有一个使用WebHttpBinding配置的IIS托管WCF服务。它是VS2008创建新服务时创​​建的默认WCF服务。我所做的唯一改变是允许从javascript调用它。

在测试方法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,因此我不确定为什么报告端口错误。

1 个答案:

答案 0 :(得分:3)

我想你可能有点倒退了。端口80是您正在侦听的位置,但一旦发生这种情况,它会将其传递到新的临时端口以处理该连接。

此外,客户端也可能使用临时端口打开到端口80的连接。因此客户端的端口可能是典型“固定”端口范围(0-1024)之外的一些“随机”端口号。