Запуск приложения MVC в качестве дополнительного приложения? - PullRequest
5 голосов
/ 13 марта 2009

Я пытаюсь создать приложение MVC в качестве дополнительного приложения к моему стандартному веб-приложению Asp.Net. Оба эти проекта находятся в одном решении. В то время как родительское приложение работает нормально, у меня возникают проблемы с тем, как работает субприложение. После некоторого массирования двух моих web.configs я смог получить среду выполнения Asp.Net для принятия конфигураций, но мне не удалось просмотреть ни одну из страниц / контроллеров в приложении MVC, включая корень подпрограммы. -приложение ("http://RootSite/SubApplicationName/"). Я постоянно получаю 404.

На самом деле, я получаю ответ при переходе по URL-адресу "http://RootSite/SubApplicationName/Home/Index/".. Он перенаправляет меня на index.aspx в этой папке и выдает эту ошибку:

Не удалось найти представление «Индекс» или его мастер. Следующие локации искали:
~ / Просмотров / На главную / Index.aspx
~ / Просмотров / На главную / Index.ascx
~ / Views / Shared / Index.aspx
~ / Views / Shared / Index.ascx

Подприложение в IIS (7) настроено довольно просто: оно настроено на запуск в том же пуле приложений, что и родительское приложение, которое запускает Asp.Net 2.0 в режиме интеграции.

Я подозреваю, что у меня есть что-то в web.configs, которое скинуло это. Есть ли какие-то вещи, скажем, в отношении HTTPModules или модулей авторизации URL и т. Д., Которые, как я должен подтвердить, не мешают MVC?

Кроме того, в файле global.asax.cs должен ли маршрут по умолчанию быть другим? По умолчанию параметр url передается в route.MapRoute:

"{controller}/{action}/{id}"

Должно ли оно предшествовать названию субприложения, как это?

"SubApplicationName/{controller}/{action}/{id}"

Я пытался изменить подобное, но это не помогло.

Любые идеи очень ценятся. Кроме того, общая информация о настройке веб-приложения MVC в качестве дополнительного приложения была бы полезной.

Спасибо.

Ответы [ 3 ]

1 голос
/ 13 марта 2009

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

Первое, что вам нужно сделать, - это создать провайдера VirtualPath, который сообщит механизму маршрутизации, как искать ваши вещи в представлениях субприложения. Отличное объяснение того, как это сделать, можно найти здесь:

http://www.wynia.org/wordpress/2008/12/05/aspnet-mvc-plugins/

Я уверен, что вы начнете;)

0 голосов
/ 21 сентября 2012

Подприложение не подходит непосредственно для веб-приложения MVC. Вы должны написать много взломанного кода в global.asax. Используйте субдомен, а не субприложение.

0 голосов
/ 14 декабря 2009

Убедитесь, что вы не допустили орфографических ошибок в именах ваших каталогов Views. Я получал то же сообщение об ошибке, и после 30 минут царапин на голове понял, что я неправильно написал имя папки для одного из моих просмотров. Среда IDE не воспринимала это каким-либо осмысленным образом (то есть было бы неплохо, если бы она явно указала мне, что путь к представлению, на которое я ссылаюсь, был неправильным - «не найдено» может означать несколько разных вещей).

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