Развертывание приложения ASP.NET MVC на IIS7 и поддержание чистоты web.config - PullRequest
6 голосов
/ 23 февраля 2009

Я бы хотел развернуть свое приложение ASP.NET MVC в веб-хостинговой компании (например, DiscountASP.net). Я запутался в том, что должно быть в файле web.config на веб-сервере. Когда я создаю проект локально, я получаю раздутый web.config со всеми видами дополнительных модулей, обработчиков, компиляторов. Нужно ли добавлять все эти элементы в рабочий файл web.config?

Я все еще развертываю свое текущее приложение ASP.NET (не MVC) в IIS6, и я всегда вручную создавал простой web.config для производственной среды и загружал его вместе с остальными файлами приложения. Похоже, что с IIS7 я должен использовать IIS Manager на веб-сервере для создания файла web.config. Каков наилучший способ создания / управления web.config на рабочем сервере?

Ответы [ 4 ]

6 голосов
/ 27 февраля 2009

Итак, вот что я нашел до сих пор, пытаясь развернуть мое приложение MVC на DiscountASP.net.

Первое, что я обнаружил, было то, что я должен был убедиться, что System.Web.Mvc был развернут в корзину, так как он не установлен в GAC:

http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx

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

Затем я скопировал беспорядок, который находится в моем локальном файле web.config, на сервер и изменил строку подключения к базе данных, и все начало работать, но я все еще получал сообщение об ошибке:

Could not load type 'System.Web.Mvc.ViewPage<MyCustomModel>'

Затем я обнаружил эту статью, в которой объясняется, как вам нужно изменить файл web.config, чтобы он не использовал код за файлами (вам не нужно делать это с локальным веб-сервером Visual Studio по некоторым причинам):

http://blog.benhall.me.uk/2009/01/aspnet-mvc-rc1-removing-code-behind.html

Лично мне не нравится, как простые настройки приложения, такие как строки подключения и настройки SMTP, смешиваются со сложными настройками инфраструктуры MVC (и AJAX.NET). Один хороший вариант для хостинговой компании (такой как DiscountASP.net) настроить Master.config (или более высокий уровень web.config) для поддержки MVC, так что мой web.config должен будет содержать только мое простое приложение настройки.

3 голосов
/ 23 февраля 2009

.Net 3.5 и IIS7 добавляют довольно много текста в web.config. Я использую диспетчер IIS в IIS7, чтобы настроить приложение один раз. Затем я беру этот измененный файл web.config и возвращаю его обратно в систему контроля версий. Таким образом, все настройки IIS сохраняются при миграции между средами.

2 голосов
/ 24 февраля 2009

System.Web.Extensions - это MS AJAX AKA Atlas, есть несколько модулей, обработчиков и разделов, связанных с этой сборкой. Не стесняйтесь удалять их, если вы не используете MS AJAX.

1 голос
/ 23 февраля 2009

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

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

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