我有两个主机名,一个域和子域(example.com
和service.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>