Hostheader не работает в Azure - PullRequest
2 голосов
/ 26 февраля 2011

В Azure настроена веб-роль для нескольких сайтов.В моем файле определения сервиса у меня есть следующее:

<Sites>
      <Site name="Web" physicalDirectory="..\ABC.WebUx">
        <Bindings>
          <Binding name="Abc" endpointName="Endpoint1" hostHeader="www.abc.com" />
        </Bindings>
      </Site>
      <Site name="DEF" physicalDirectory="..\DEF.WebUx">
        <Bindings>
          <Binding name="Def" endpointName="Endpoint1" hostHeader="www.def.com" />
        </Bindings>
      </Site>
      <Site name="Ghi" physicalDirectory="..\GHI.WebUx">
        <Bindings>
          <Binding name="Ghi" endpointName="Endpoint1" hostHeader="www.ghi.com" />
        </Bindings>
      </Site>
    </Sites>

<Endpoints>
  <InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>

Хост-хедер работает хорошо, когда я пробую www.def.com и www.ghi.com, однако при входе на www.abc.com кажется, что он игнорируетфизический каталог и вместо этого выдает мне следующее сообщение:

    Multiple types were found that match the controller named 'Home'. This can happen if the route that services this request ('{controller}/{action}/{id}') does not specify namespaces to search for a controller that matches the request. If this is the case, register this route by calling an overload of the 'MapRoute' method that takes a 'namespaces' parameter.

    The request for 'Home' has found the following matching controllers:
    ABC.WebUx.Controllers.HomeController
    DEF.WebUx.Controllers.HomeController
    GHI.WebUx.Controllers.HomeController

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Multiple types were found that match the controller named 'Home'. This can happen if the route that services this request ('{controller}/{action}/{id}') does not specify namespaces to search for a controller that matches the request. If this is the case, register this route by calling an overload of the 'MapRoute' method that takes a 'namespaces' parameter.

Кто-нибудь знает, почему он игнорирует физический каталог для "Web" по умолчанию, который, кстати, является сайтом, который я связал со своей облачной службой?.

Ваша помощь будет высоко ценится.

Нанси

Ответы [ 2 ]

1 голос
/ 27 февраля 2011

Если вы работаете с несколькими веб-сайтами, я бы порекомендовал посмотреть этот эпизод облачного покрова . В ходе этого эпизода они обсуждают, что любой сайт с именем «Web» рассматривается Azure как особый случай, поэтому такие свойства, как физический каталог, игнорируются. Поэтому, чтобы решить вашу конкретную проблему, измените имя вашего первого сайта с «Веб» на «ABC».

0 голосов
/ 10 июня 2011

Веб-сайт по умолчанию всегда будет указывать на папку проекта для веб-роли в вашем решении. Вы не можете перезаписать его, используя атрибут physicalDirectory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...