2010-07-17 2 views
1

Ненавижу звучать глупо, но ASP.NET не моя сильная сторона.Каков подходящий способ развертывания приложения ASP.NET для производства?

У меня есть приложение ASP.NET, которое я сейчас развертываю на производственном сервере. Поиск в Интернете я обнаружил, что рекомендуется использовать инструмент установки в VS2010 для компиляции и установки файлов на производственных серверах. Тем не менее, я нахожу это немного странным:

  1. Файлы на сервере - это именно те, что у меня были в моей системе. Я бы предположил, что переход на производственный сервер потребует компиляции и сжатия содержимого файла, чтобы улучшить выполнение. Но на практике все файлы на сервере точно так же, как и в моей локальной системе, - я даже могу изменить свой .cs-файл на серверах, и это работает! (Удивлен ;-)).
  2. Следуя приведенному выше, весь мой код легко доступен на сервере для просмотра. Я не уверен, что это проблема ... Например, может ли это привести к угрозе безопасности (из-за паролей в файлах)?

ответ

1

Вы создали веб-сайт или проект веб-приложения в VS2010? Если это веб-сайт, вы захотите преобразовать его в проект веб-приложения. Веб-сайты могут быть скомпилированы «на лету», когда приложение сначала запрашивается. Проект веб-приложения предварительно скомпилирован, и ни один из файлов .cs не будет вытеснен на ваш производственный сервер при публикации проекта.

Я знаю, что могу сделать преобразование, щелкнув правой кнопкой мыши по моим веб-проектам и выбрав «Преобразовать в веб-приложение», но этот пункт меню может присутствовать из-за расширения ReSharper (5.1) или PowerCommands для Visual Studio 2010 от Microsoft ,

Также проверьте свои .aspx-файлы. У вас есть только .aspx и .aspx.cs? Или есть файл .aspx.designer.cs? Файлы-дизайнеры будут представлены только для проекта веб-приложения. Если вы их не видите, у вас есть веб-сайт, а не проект веб-приложения.

+0

обращенным в веб-приложение является частью VS –

+0

@james - это тоже демон из ада ублюдок особенность ребенка, что приводит к большому количеству боли и скрежет зубов и должен быть вычеркнуто из памяти, как все нечестивый и нечистый. ;-) –

+0

@james, я думаю, что поэт @code означает, что веб-проекты должны * начинаться * как проекты веб-приложений, а функция веб-сайтов должна быть полностью удалена. Процесс преобразования не всегда идеален. Я работал с поэтом поэта, и у него была неудачная работа по преобразованию очень большого и громоздкого веб-сайта в приложение. Он в основном закончил создание нового проекта с нуля и добавление файлов вручную. Во многих случаях ему приходилось вручную создавать файлы конструктора и перемещать код с страниц разметки в них. Это не помогло, что там было много артефактов .NET 1.1. –

1

Вы можете сделать то, что вы сделали, но я бы не рекомендовал его по причинам, о которых вы упомянули. Плюс ваш код на самом деле не компилируется !.

Типичным подходом было бы скомпилировать приложение, затем взять/bin dll и направить их на сервер. Для базового сайта требуется web.config, папка bin с вашими DLL и любыми ASPX-файлами, содержащими разметку, любой статический контент, такой как JS/CSS/Images и т. Д. В этом случае разметка (aspx) все еще можно редактировать, но Код CS находится внутри DLL, и никакие файлы CS не находятся на сервере.

Вы также можете предварительно собрать всю вещь, которая будет фактически изменять файлы ASPX, и вы можете узнать больше здесь: http://msdn.microsoft.com/en-us/library/ms227972.aspx

Visual Studio 2010 имеет функцию «Опубликовать» в меню сборки, который может нажать сайт для вас через FTP или Web Deploy, но это полезно только для небольших проектов.

Для большинства вещей вы захотите заглянуть в msbuild или nant для сценария процесса, и это может позволить вам включить такие вещи, как JSmin или JSLint, в сборку и развертывание.

Надеюсь, что это поможет. -fs

0
  1. Это зависит от того, как вы делаете публикации. http://weblogs.asp.net/owscott/archive/2009/06/06/visual-studio-2010-1-click-publishing.aspx. «Точно то же самое» не проблема. Ваше ожидание при компиляции и сжатии «настолько ненормально». Почему они должны быть выполнены, чтобы вы чувствовали себя счастливыми, а то, что вам просто нужно, - простое развертывание?

  2. Как защитить свой код - это, безусловно, дополнительная работа, которую вы должны выполнить вручную, например, настройки разрешений NTFS и т. Д. Нет ничего такого автоматического.

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