2009-07-21 2 views
4

До сих пор единственная успешная стратегия я смог получить с заключается в следующем:Лучший способ развертывания приложения ASP.NET MVC на IIS 7/Server 2008?

  1. Настройка YOURAPP.Web на «веб-сервера Использовать локальный IIS» и установите «Project URL» = http://localhost/yourapp.web
  2. Нажмите кнопку "Создать виртуальный каталог"
  3. в диспетчере IIS убедитесь, что "Classic .NET App Pool" выбран
  4. Добавить сопоставление подстановочный * с именем "ASP.NET MVC-", что указывает на IsapiModule

НО Мне не очень нравится идея создания полного конвейера ASP.NET при запросе любого ресурса (файл javascript, таблица стилей, изображения и т. Д.), Что и происходит с отображением подстановочных знаков.

Итак, есть ли способ обойти это?

Есть ли лучший способ запуска приложений mvc на IIS 7?

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

Спасибо - ВГ

ответ

1

Убедитесь, что режим управляемого режима работы IIS7 установлен на «Integrated». Это была самая важная вещь (для меня), чтобы мое приложение MVC работало на IIS7. Вот good blog post too. При разработке приложения у меня не было проблем с использованием «Visual Studio Development Server» для запуска приложения.

+0

Я попытался это, но у меня есть необходимость для извлечения «this.User.Identity» в методе Application_AuthenticateRequest(), который возвращает нуль для «this.User» Когда я бегу в классическом режиме, он не является нулевым , – wgpubs

+0

см. Мой комментарий ниже. но я согласен, что Интеграция представляется наиболее эффективной. – wgpubs

0

Если предположить, что все ваши CSS файлы/JS/изображения находятся в каталоге Content, вы можете добавить игнорировать маршрут.

routes.IgnoreRoute("Content/{*wildcard}"); 

Это предотвратит любые запросы к каталогу содержимого, обрабатываемому MVC.

0

IIS7 предназначен для выполнения всех запросов и эффективного отталкивания статического файла. Я бы не стал беспокоиться об этом, так же, как вы беспокоитесь о сопоставлениях шаблонов на IIS6. Отсутствует «нагрузка на ASP.NET-конвейер», потому что IIS7 является промежуточным конвейером ASP.NET.

+0

У меня есть код в моем методе Application_AuthenticateRequest(), который выполняется для всего ... каждый javascript, таблица стилей и изображение на странице. И это замедляет работу waaaay. Так что у меня сложилось впечатление, что для этих статических файлов также вызывается конвейер ASP.NET. Нет? – wgpubs

+0

РЕШЕН. Переместил этот код в AuthorizeRequest(), и все работало и только вызывало ONCE vs. для каждого файла. Итак, я считаю, что наилучшей практикой является использование Integrated и посмотрите здесь (http://msdn.microsoft.com/en-us/library/bb470252.aspx) для понимания того, что происходит и когда доступно в ASP.NET, когда работает под IIS 7 (потому что он отличается). – wgpubs

Смежные вопросы