Размещение MVC и сайта веб-форм в одном экземпляре IIS7 - наследование web.config - PullRequest
0 голосов
/ 10 января 2012

У нас есть сайт, который был написан на классическом ASP, затем я начал расширять его с помощью веб-форм.Эти расширения существуют в подпапке главной папки.Теперь мы решили, что предпочли бы использовать MVC3.Кроме того, поскольку мы хотим со временем преобразовать весь наш сайт в MVC3, мы размещаем код MVC в корне приложения.Я нашел несколько других вопросов, где у людей есть проблема, похожая на мою, но нет решения.Проблема заключается в том, что мое приложение веб-форм не может быть остановлено от наследования настроек web.config из корневой папки, и в результате оно не запускается, либо жалуется на отсутствующие библиотеки DLL, либо жалуется на запускнеправильная версия .NET, или жалуется, что мне нужно удалить некоторые настройки (которые я пытаюсь и не могу заставить работать правильно).Приложение в подпапке также содержит веб-сервис, который вызывается нашим приложением, а также запускает обработчики HTTP для защиты нашего информационного контента, поэтому в нем есть что-то полезное.Нужно ли мне запускать свой сайт MVC в подпапке?Есть ли способ разместить MVC в папке над приложением веб-форм?Я бы предпочел настроить все так, чтобы они обменивались данными сеанса, но на данном этапе это, скорее всего, невозможно ...

Итак, чтобы понять структуру папок:

<root>
   contains asp site and MVC site.
   <subfolder>
      contains webforms application
   </subfolder>
</root>

и моя проблема заключается в запуске подпапки, предпочтительно в том же сеансе, что и приложение MVC.

1 Ответ

0 голосов
/ 10 января 2012

Нет причин, по которым вы не можете запускать обычные файлы .aspx на сайте MVC. Вы правы, хотя настройки web.config наследуются от родительского (цепочка), но вы просто добавляете новый web.config в свой каталог с соответствующими настройками.

Вам нужно будет поиграть с маршрутами, потому что по умолчанию MVC перенаправит все запросы в ваши классы контроллеров. Но если вы гуглите его довольно просто, добавьте исключение в маршрутизацию.

Если вы опубликуете некоторые конкретные ошибки, мы, вероятно, сможем помочь в дальнейшем.

О, а вы имеете в виду Classic ASP? то есть не классический ASP.NET? Потому что вы получите удовольствие от обмена данными сеанса между ASP и ASP.NET.

...