Запуск приложения C # MVC в корне сервера iis с несколькими пулами приложений - PullRequest
2 голосов
/ 19 марта 2019

У меня проблема с сайтом, который я пытаюсь создать для своей организации. Я создаю сайт C # MVC, который в конечном итоге станет интерфейсом для всех наших сайтов. Когда я развертываю его в корне сервера, он отключает доступ ко всем нашим дочерним сайтам, которые также работают на MVC. Наши классические ASP-сайты работают, но я думаю, что это связано с тем, что механизм маршрутизации MVC все равно не может обрабатывать эти архаичные сайты.

Итак, вот макет нашего пула приложений:

  • корневой сайт (в настоящее время классический asp)
  • дочерних сайтов, имеющих собственные пулы ресурсов

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

Когда я пытаюсь получить доступ к любому субприложению напрямую, я получаю ошибку 401.2 «Отказано в доступе». Я попытался добавить подпрограммы в инструкцию route.IgnoreRoutes и сразу добавить маршрут для подпрограммы.

Может ли кто-нибудь помочь мне понять, могу ли я это сделать, и что мне нужно сделать, чтобы эта работа? Все ли субприложения должны быть частью одного проекта? Буду очень признателен за любую помощь / руководство, которое вы можете предоставить.

Редактирование :. Все приложения попадают под один «сайт». Ourdomain.com/applications. Я хочу, чтобы мой работал на ourdomain.com, и все еще был в состоянии запустить все приложения.

Ответы [ 2 ]

2 голосов
/ 20 марта 2019

Хорошо.Я понял.Мне пришлось удалить кучу материала из web.config, который я развернул в корне сайта.Учитывая, что мне нужно развернуть предварительно скомпилированное приложение , вот что я удалил:

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>

Что-то еще, что я должен был сделать, так как наш сайт использует активную аутентификацию каталога, это добавитьпосле авторизации:

<allow roles="DN\domain users"/>

Обычный

<deny users="?"/>

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

1 голос
/ 20 марта 2019

Это решение для отмены доступа пользователя к определенной папке, но не для всех из них в корневом приложении https://serverfault.com/questions/135825/disable-authentication-on-subfolders-of-an-asp-net-app-using-windows-authentic

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