2016-04-12 6 views
0

Я пытаюсь собрать следующую архитектуру:500,22 для подкаталогов файлов на корневом приложении ASP.NET с ребенком виртуального каталога ASP.NET MVC приложения

  • /(корень): ASP.NET WebForms 4.6 приложения ,
  • /SPA (виртуальный каталог): приложение ASP.NET MVC 4.6.

Чтобы сделать вещи ясно, здесь конфигурация IIS Express:

<site name="Redacted.Axis.Web.UI.SingleApp-Site" id="2"> 
    <application path="/" applicationPool="Clr4IntegratedAppPool"> 
     <virtualDirectory path="/" physicalPath="C:\Projects\Axis\Dev\PocInternational\Web\Redacted.Axis.Web.UI.App" /> 
    </application> 
    <application path="/SPA" applicationPool="Clr4IntegratedAppPool"> 
     <virtualDirectory path="/" physicalPath="C:\Projects\Axis\Dev\PocInternational\Web\Redacted.Axis.Web.UI.SingleApp" /> 
    </application> 
    <bindings> 
     <binding protocol="http" bindingInformation="*:4010:localhost" /> 
    </bindings> 
</site> 

Они находятся на разделенных веб-проектов (UI.App и UI.SingleApp). Я хочу, чтобы они использовали одну и ту же аутентификацию. Мне удалось сделать эту работу уже с обычными машинными ключами и той же конфигурацией аутентификации/форм.

Моя последняя проблема заключается в том, что статические файлы под корневым приложением не обслуживаются, например /CSS/site.css или /JS/jquery.js. Я получаю ошибку 500.22 для всех из них.

Эта ошибка означает, что я должен быть в классическом режиме, но приложение WebForms отлично работает в интегрированном режиме (и default.aspx или login.aspx при работе с корнем).

Это также означает, что некоторые модули, определенные в system.web, не находятся в system.webServer. Но они.

У меня есть это в обоих файлах web.config:

system.webServer/[email protected]=false 
systel.webServer/[email protected]=true 

Статические файлы для суб приложений MVC работать нормально, как /SPA/Content/sites.css.

Приложение WebForms отлично работало, прежде чем добавить виртуальный каталог в приложение MVC. Только мне пришлось изменить местоположение @ path =. @ InheritInChildApplications = false на всех узлах web.config корневого приложения, поэтому MVC web.config работает правильно.

Там должно быть немного вещь прочь, но я не могу положить палец на нем ...

ответ

0

Сила проводки.

Я начал думать, что мои теги местоположения в корневом web.config имеют к этому какое-то отношение.

Я нашел ответ here.

Для лени, validateIntegratedModeConfiguration должен находиться за пределами тега местоположения. У вас может быть два раздела system.webServer, это не имеет значения (но не два тега проверки).

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
</system.webServer> 
<location path="." inheritInChildApplications="false"> 
    <system.webServer>...</system.webServer> 
</location>