具有IIS和自托管WCF的单台计算机上的多个主机名

时间:2010-11-18 16:34:00

标签: wcf iis binding

我有两个主机名,一个域和子域(example.comservice.example.com)都指向一个(Windows 2008)服务器。服务器正在运行IIS 7(托管ASP.NET网站)和自托管WCF服务。我希望IIS处理对http://example.com和WCF服务的请求,以处理对http://service.example.com的请求。

问题是如果服务正在运行,它会“拦截”所有HTTP请求,而不管主机头是什么。换句话说,如果我在Web浏览器中访问http://example.com,我将获得WCF“您已创建服务”页面而不是ASP.NET站点。如果服务未运行,IIS将按预期处理请求。

IIS站点在端口80上有一个HTTP绑定,并指定了example.com主机名。

服务的app.config文件的相关部分如下所示。我已经尝试了所有三个hostNameComparisonMode值而没有运气。

<bindings>
  <basicHttpBinding>
    <binding name="BasicHttp" hostNameComparisonMode="Exact">
      <security mode="None" />
    </binding>
  </basicHttpBinding>
</bindings>
<services>
  <service behaviorConfiguration="ExampleServiceBehavior" name="Example.Service">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttp" contract="Example.IService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://service.example.com/" />
      </baseAddresses>
    </host>
  </service>
</services>

0 个答案:

没有答案