C# 远程客户端的WCF中报告的端口异常

C# 远程客户端的WCF中报告的端口异常,c#,javascript,wcf,C#,Javascript,Wcf,我有一个IIS托管的WCF服务,它配置了WebHttpBinding。这与您创建新WCF服务时VS2008创建的默认WCF服务相同。我所做的唯一更改是允许从javascript调用它 在测试方法GetData(int值)中,我返回一个字符串,该字符串显示远程客户端IP地址、端口和useragent。一切正常,除了我不期望它返回的端口号。我期待端口80,但相反得到类似49353的东西。下面是我正在调用的方法 public string GetData(int value) {

我有一个IIS托管的WCF服务,它配置了WebHttpBinding。这与您创建新WCF服务时VS2008创建的默认WCF服务相同。我所做的唯一更改是允许从javascript调用它

在测试方法GetData(int值)中,我返回一个字符串,该字符串显示远程客户端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配置的,因此我不确定端口报告错误的原因。

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


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

Doh!我敢打赌你是对的。我们都在下雨,这让我很累。谢谢你的复习。