【问题标题】:Request-URL in WCF Service with multiple IIS-bindings?具有多个 IIS 绑定的 WCF 服务中的请求 URL?
【发布时间】:2011-03-12 22:37:24
【问题描述】:

我有一个 IIS 托管的 WCF 服务,并希望在同一个 Web 应用程序上使用多个 IIS 绑定使其在多个域中可用。示例:

使用 .Net Framework 4 及其multipleSiteBindingsEnabled 属性,服务成功激活。但是,只有一个 IIS 绑定用作ServiceHost 的基地址,OperationContext 中的属性始终包含该地址无论使用哪个主机名拨打电话。

所以我的问题是:在服务方法中,我如何检索用于调用的实际主机名?

我知道我可以使用HttpContextASP.NET Compatibility Mode 来检索实际的请求网址,但我想知道是否还有其他(更好的?)方法。

【问题讨论】:

    标签: .net wcf iis


    【解决方案1】:

    原来IncomingMessageProperties 包含一个HttpRequestMessageProperty 对象,其中包含所有请求详细信息,包括正确的主机名:

    var ctx = OperationContext.Current;
    var httpRequest = ctx.IncomingMessageProperties["httpRequest"]
                      as HttpRequestMessageProperty;
    
    var hostName = httpRequest.Headers["host"];
    

    【讨论】:

      猜你喜欢
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 2012-01-11
      • 2013-08-23
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      相关资源
      最近更新 更多