Несколько имен хостов на одном компьютере с IIS и собственным размещением WCF - PullRequest
1 голос
/ 18 ноября 2010

У меня есть два имени хоста, домен и поддомен (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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...