У меня есть два имени хоста, домен и поддомен (example.com
и service.example.com
), оба указывают на один (Windows 2008) сервер. Сервер работает под управлением IIS 7 (на котором размещен веб-сайт ASP.NET) и самостоятельно размещен сервис WCF. Я хочу, чтобы IIS обрабатывал запросы к http://example.com
, а служба WCF для обработки запросов к http://service.example.com
.
Проблема в том, что если служба работает, она «перехватывает» все HTTP-запросы независимо от заголовка узла. Другими словами, если я посещаю http://example.com
в веб-браузере, я получаю страницу WCF «Вы создали службу» вместо сайта ASP.NET. Если служба не запущена, IIS обрабатывает запросы, как и ожидалось.
Сайт IIS имеет одну HTTP-привязку к порту 80 с указанным 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>