在多个绑定上承载IIS站点时,如何获取正确的本地地址URI?

时间:2019-08-07 11:51:46

标签: c# wcf iis webforms

我已经在IIS中使用多个端口绑定配置了一个简单的服务。 无论调用哪个端口,当前通道的本地地址始终相同。

IIS site bindings


[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class TestService : ITestService
{
  public string Test()
  {
    return OperationContext.Current.Channel.LocalAddress.Uri.Port.ToString();
  }
}

致电testHost2:7772->返回 7772

呼叫testHost1:7771->也返回 7772

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码通过WCF获取主机名和端口:

var test = OperationContext.Current.Host.BaseAddresses[0].Authority;

Uri uri = OperationContext.Current.IncomingMessageHeaders.To ;