2009-02-23 3 views
6

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

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

ответ

6

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

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

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

Тогда я начал с супер basic 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

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

1

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

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

+0

Предположим, у меня очень простое приложение, и единственное, что я добавил в web.config, это строка подключения к базе данных. Мне нужно получить все обработчики, модули и компиляторы в Интернете.config или эта информация будет уже в файле machine.config? –

+0

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

3

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

+3

Мне кажется, что web.config заполняется барахлом. Очень сложно отслеживать, для чего это все. –

2

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

+0

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

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