Развертывание веб-приложения ASP.NET с помощью SQL Server Compact с помощью Visual Studio или Visual Web Developer: развертывание в рабочей среде — 7 из 12

Том Дайкстра

Скачать начальный проект

В этой серии учебников показано, как развернуть (опубликовать) проект веб-приложения ASP.NET, включающий базу данных SQL Server Compact, с помощью версии-кандидата Visual Studio 2012 или Visual Studio Express 2012 RC for Web. Вы также можете использовать Visual Studio 2010 при установке обновления веб-публикации. Общие сведения о серии см. в первом руководстве этой серии.

Руководство по функциям развертывания, появившиеся после выпуска версии-кандидата Visual Studio 2012, развертывание SQL Server выпусков, отличных от SQL Server Compact, и развертывание в Служба приложений Azure веб-приложения см. в разделе ASP.NET веб-развертывание с помощью Visual Studio.

Общие сведения

В этом руководстве вы настроите учетную запись у поставщика услуг размещения и развернете веб-приложение ASP.NET в рабочей среде с помощью функции публикации одним щелчком мыши в Visual Studio.

Напоминание. Если при работе с руководством появляется сообщение об ошибке или что-то не работает, обязательно проверка страницу устранения неполадок.

Выбор поставщика услуг размещения

Для приложения Contoso University и этой серии руководств вам потребуется поставщик, поддерживающий ASP.NET 4 и веб-развертывание. Была выбрана конкретная хостинговая компания, чтобы в руководствах можно было проиллюстрировать полный опыт развертывания на динамическом веб-сайте. Каждая хостинговая компания предоставляет различные функции, и опыт развертывания на своих серверах несколько отличается. Однако процесс, описанный в этом руководстве, является типичным для всего процесса. Поставщик услуг размещения, используемый в этом руководстве, Cytanium.com, является одним из многих доступных, и его использование в этом руководстве не является подтверждением или рекомендацией.

Когда вы будете готовы выбрать собственного поставщика услуг размещения, вы можете сравнить функции и цены в коллекции поставщиков на сайте Microsoft.com/web.

Создание учетной записи

Создайте учетную запись у выбранного поставщика. Если поддержка полной базы данных SQL Server добавлена дополнительно, вам не нужно выбирать ее для этого руководства, но она понадобится для перехода на SQL Server далее в этой серии.

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

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

  • URL-адрес сайта панели управления поставщика, где можно управлять параметрами сайта. Указанные идентификатор и пароль включены в эту часть приветственного сообщения электронной почты для удобства использования. (Оба значения были изменены на демонстрационное значение для этого рисунка.)

    Welcome_Email_Control_Panel_URL

  • По умолчанию платформа .NET Framework версию и сведения о том, как ее изменить. Для многих сайтов размещения по умолчанию используется значение 2.0, которое работает с ASP.NET приложениями, предназначенными для платформа .NET Framework 2.0, 3.0 или 3.5. Однако Contoso University является приложением платформа .NET Framework 4, поэтому необходимо изменить этот параметр. (Для приложения ASP.NET 4.5 следует использовать параметр .NET 4.0.)

    Welcome_Email_Framework_Version

  • Временный URL-адрес, который можно использовать для доступа к веб-сайту. При создании этой учетной записи в качестве существующего доменного имени была введена contosouniversity.com. Поэтому временным URL-адресом является http://contosouniversity.com.vserver01.cytanium.com.

    Welcome_Email_Temporary_URL

  • Сведения о настройке баз данных и строках подключения, необходимых для доступа к ним:

    Welcome_Email_Database_Info

  • Сведения об инструментах и параметрах для развертывания сайта. (В сообщении электронной почты от Cytanium также упоминается WebMatrix, который здесь опущен.)

    Welcome_Email_Deploy_info

Настройка версии платформа .NET Framework

Приветственное сообщение электронной почты Cytanium содержит ссылку на инструкции по изменению версии платформа .NET Framework. В этих инструкциях объясняется, что это можно сделать с помощью панели управления Cytanium. У других поставщиков есть сайты панели управления, которые выглядят иначе, или они могут указать вам сделать это по-другому.

Перейдите по URL-адресу панели управления. После входа с помощью имени пользователя и пароля вы увидите панель управления.

Cytanium_Control_Panel

В поле Пространства размещения наведите указатель на значок Веб-сайта и выберите в меню Веб-сайты .

Cytanium_Control_Panel_selecting_Web_Sites

В поле Веб-сайты щелкните contosouniversity.com (имя сайта, который использовался при создании учетной записи).

Cytanium_Control_Panel_selecting_contosouniversity

В поле Свойства веб-сайта выберите вкладку Расширения .

Cytanium_Control_Panel_Extensions_tab

Измените ASP.NET с 2.0 На4.0 (интегрированный конвейер) и нажмите кнопку Обновить.

Публикация в поставщике услуг размещения

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

В браузере перейдите на панель управления Cytanium, выберите Интернет , а затем — Веб-сайты.

панель управления выбора веб-сайтов

Выберите веб-сайт contosouniversity.com .

панель управления выбор contosouniversity.com

Перейдите на вкладку Веб-публикация .

вкладка веб-публикации панель управления

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

панель управления создания учетных данных публикации

Щелкните Скачать профиль публикации для этого веб-сайта.

панель управления скачать профиль публикации

При появлении запроса на открытие или сохранение файла сохраните его.

Сохранение файла профиля публикации

В Обозреватель решений в Visual Studio щелкните правой кнопкой мыши проект ContosoUniversity и выберите Опубликовать. На вкладке Предварительный просмотр откроется диалоговое окно Публикация веб-страницы с выбранным тестовым профилем, так как это последний используемый профиль.

Перейдите на вкладку Профиль и нажмите кнопку Импорт.

Кнопка импорта в мастере публикации

В диалоговом окне Импорт параметров публикации выберите скачанный файл PUBLISHSETTINGS и нажмите кнопку Открыть. Мастер перейдет на вкладку Подключение со всеми полями.

Вкладка

Файл .publishsettings помещает запланированный постоянный URL-адрес сайта в поле Целевой URL-адрес, но если вы еще не приобрели этот домен, замените значение временным URL-адресом. В этом примере используется http://contosouniversity.com.vserver01.cytanium.com URL-адрес. Единственное назначение этого поля — указать, по какому URL-адресу браузер будет открываться автоматически после успешного развертывания. Если оставить его пустым, единственным следствием будет то, что браузер не запустится автоматически после развертывания.

Щелкните Проверить подключение , чтобы проверить правильность параметров и возможность подключения к серверу. Как вы видели ранее, зеленая метка проверка подтверждает успешное подключение.

При нажатии кнопки Проверить подключение может появиться диалоговое окно Ошибка сертификата . В этом случае убедитесь, что имя сервера соответствует ожидаемому. Если это так, выберите Сохранить этот сертификат для будущих сеансов Visual Studio и нажмите кнопку Принять. (Эта ошибка означает, что поставщик услуг размещения решил избежать расходов на приобретение SSL-сертификата для URL-адреса, по которому выполняется развертывание. Если вы предпочитаете установить безопасное подключение с помощью допустимого сертификата, обратитесь к поставщику услуг размещения.)

Ошибка сертификата

Щелкните Далее.

В разделе Базы данных на вкладке Параметры введите те же значения, что и для профиля тестовой публикации. Необходимые строки подключения можно найти в раскрывающихся списках.

  • В поле строка подключения для SchoolContext выберитеData Source=|DataDirectory|School-Prod.sdf
  • В разделе SchoolContext выберите Применить Code First Migrations.
  • В поле строка подключения для DefaultConnection выберите Data Source=|DataDirectory|aspnet-Prod.sdf
  • В разделе DefaultConnection оставьте обновление базы данных снятой.

Вкладка

Щелкните Далее.

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

Перед публикацией измените имя профиля, чтобы применить файл преобразования Web.Production.config. Перейдите на вкладку Профиль и щелкните Управление профилями.

Мастер публикации веб-страницы Управление профилями

В диалоговом окне Изменение профилей веб-публикации выберите рабочий профиль, нажмите кнопку Переименовать и измените имя профиля на Рабочий. Затем нажмите кнопку Закрыть.

Диалоговое окно

Нажмите кнопку Опубликовать.

Приложение публикуется у поставщика услуг размещения. Результат отображается в окне Вывод .

Окно вывода после развертывания

Браузер автоматически открывает URL-адрес, указанный в поле Целевой URL-адрес на вкладке Подключение мастера публикации веб-страницы . Вы увидите ту же домашнюю страницу, что и при запуске сайта в Visual Studio, за исключением того, что в заголовке окна отсутствует индикатор среды (Тест)" или "(Dev)". Это означает, что индикатор среды Web.config преобразования работал правильно.

Примечание

Если в заголовке по-прежнему отображается сообщение "(Test)", удалите папку obj из проекта ContosoUniversity и повторно разверните ее. В предварительных версиях программного обеспечения ранее примененный файл преобразования (Web.Test.config) может быть применен снова, хотя вы используете профиль Production.

Home_page_Prod

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

Настройка разрешений папки для Elmah

Как вы помните из предыдущего руководства этой серии, необходимо убедиться, что у приложения есть разрешения на запись для папки в приложении, в которой Elmah хранит файлы журнала ошибок. При локальном развертывании в СЛУЖБАх IIS на компьютере эти разрешения задаются вручную. В этом разделе вы узнаете, как задать разрешения в Cytanium. (Некоторые поставщики услуг размещения могут не разрешать это делать; они могут предлагать одну или несколько предопределенных папок с разрешениями на запись. В этом случае потребуется изменить приложение для использования указанных папок.)

Разрешения для папки можно задать на панели управления Cytanium. Перейдите по URL-адресу панели управления и выберите Диспетчер файлов.

Cytanium_Control_Panel_with_File_Manager_selected

В окне Диспетчер файлов выберите contosouniversity.com , а затем wwwroot , чтобы просмотреть корневую папку приложения. Щелкните значок замка рядом с пунктом Elmah.

Cytanium_Control_Panel_File_Manager_at_root_folder

В окнеРазрешения папкифайлов/ установите флажки Чтение и запись для contosouniversity.com и нажмите кнопку Задать разрешения.

Cytanium_Control_Panel_File_Folder_Permissions_Elmah

Убедитесь, что у Elmah есть доступ на запись в папку Elmah , вызвав ошибку, а затем отобразив отчет об ошибке Elmah. Запросите недопустимый URL-адрес , например Studentsxxx.aspx. Как и раньше, вы увидите страницу GenericErrorPage.aspx . Щелкните ссылку Выход и запустите Elmah.axd. Сначала вы получите страницу Вход , которая проверяет, успешно ли добавлена авторизация Elmah в преобразованиеWeb.config . После входа вы увидите отчет, в который отображается только что вызванная ошибка.

Elmah.axd_Prod

Тестирование в рабочей среде

Запустите страницу Учащиеся . Приложение пытается получить доступ к базе данных School в первый раз, что запускает Code First Migrations для создания базы данных. Когда страница отображается после некоторой задержки, она показывает, что учащиеся отсутствуют.

Students_page_Prod

Запустите страницу Преподаватели , чтобы убедиться, что данные начального значения успешно вставлены в базу данных.

Instructors_page_Prod

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

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

Add_Students_page_Prod

Students_page_with_new_student_Prod

Убедитесь, что правила авторизации работают правильно, выбрав Обновить кредиты в меню Курсы . Отобразится страница Вход . Введите учетные данные учетной записи администратора, нажмите кнопку Войти и отобразится страница Обновить кредиты .

Log_In_page_Prod

Если вход выполнен успешно, отображается страница Обновить кредиты . Это означает, что база данных членства ASP.NET (с одной учетной записью администратора) успешно развернута.

Update_Credits_page_Prod

Теперь вы успешно развернули и протестировали свой сайт, и он доступен в интернете.

Создание более надежной тестовой среды

Как описано в учебнике Развертывание в тестовой среде , наиболее надежной тестовой средой будет вторая учетная запись поставщика услуг размещения, похожая на рабочую учетную запись. Это будет дороже, чем использование локальных СЛУЖБ IIS в качестве тестовой среды, так как вам придется зарегистрироваться для получения второй учетной записи размещения. Но если это предотвращает ошибки или сбои производственного сайта, вы можете решить, что это стоит затрат.

Большая часть процесса создания и развертывания в тестовой учетной записи аналогична тому, что вы уже сделали для развертывания в рабочей среде:

  • Создайте файл преобразованияWeb.config .
  • Создайте учетную запись у поставщика услуг размещения.
  • Создайте новый профиль публикации и выполните развертывание в тестовой учетной записи.

Запрет общего доступа к тестовой площадке

Важно учитывать, что тестовая учетная запись будет доступна в Интернете, но вы не хотите, чтобы ее использовали. Чтобы сохранить сайт закрытым, можно использовать один или несколько из следующих методов:

  • Обратитесь к поставщику услуг размещения, чтобы задать правила брандмауэра, разрешающие доступ к тестовой площадке только с IP-адресов, используемых для тестирования.
  • Замаскировать URL-адрес, чтобы он не был похож на URL-адрес общедоступного сайта.
  • Используйте файлrobots.txt , чтобы поисковые системы не сканировали тестовый сайт и не сообщали ссылки на него в результатах поиска.

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

Файл robots.txt попадает в папку проекта и должен содержать следующий текст:

User-agent: *
Disallow: /

Строка User-agent сообщает поисковым системам, что правила в файле применяются ко всем поисковым роботам(роботам), а Disallow строка указывает, что ни для каких страниц сайта не следует выполнять обход.

Вероятно, вы хотите, чтобы поисковые системы каталоги вашего рабочего сайта, поэтому необходимо исключить этот файл из рабочего развертывания. Для этого см. статью Можно ли исключить определенные файлы или папки из развертывания? статьи часто задаваемые вопросы о развертывании проекта веб-приложения ASP.NET. Убедитесь, что вы указали исключение только для профиля публикации в рабочей среде.

Создание второй учетной записи размещения — это подход к работе с тестовой средой, который не требуется, но может стоить дополнительных расходов. В следующих руководствах вы продолжите использовать IIS в качестве тестовой среды.

В следующем руководстве вы обновите код приложения и развернете изменения в тестовой и рабочей средах.