sticky
Основные ошибки развертывания wcf сервисов из Visual Studio

    Общие обсуждения

  • Суть проблемы - RIA или ASP работает под VS 2008 (2010), но не работает на хостинге IIS.

    Настройка IIS должна быть выполнена в трех разделах Диспетчера служб IIS:

    1. Начальная страница YourSite (Page YourSite), далее site: Диспетчер служб IIS>Панель «Подключения» («Connections», слева) > сайты (sites) > «yoursite» > LMB* > Главная панель «Начальная страница yoursite» («page yorsite») 

    2. Сайты (Sites), далее sites: Диспетчер служб IIS>Панель «Подключения» («Connections», слева) > сайты (sites) > LMB > Главная панель «сайты» («sites»)  

    3. Пулы приложений (ApplicationPools), далее pools: Диспетчер служб IIS>Панель «Подключения» («Connections», слева) > Пулы приложений (ApplicationPools) > LMB > Главная панель «Пулы приложений» («ApplicationPools») 

    В различных разделах будут выполняться действия в панелях «Действия» («Actions», справа), далее actions:

    -------------------------------------------------------------------------

    *  LMB - leftmousebutton, RMB – rightmousebutton, MB - mousebutton

    Проблемы и решения

    1. Проблема - "Ваше приложение использует более позднюю версию Framework..."

     1.1. Причина - как правило, приложение хостится на достаточно давно установленный сервер с FW 2, а само приложение разработано под FW 4, который принципиально отличается от FW 2 (Framework 3 не в счет, поскольку функционально это тот же FW 2).

    1.2. Решение - развернуть на сервере Framework 4

    1.3. Результат – ошибка сохраняется, откат приложения и его повторное развертывание не помогает, но…! Мы пока не знаем, но в списке пулов приложений (ApplicationPool) появилось два пула со средой выполнения Framework 4.0

    2. Проблема – предыдущая

    2.1. Причина - при развертывании приложения IIS создает собственный изолированный пул приложений для одного данного приложения со средой выполнения FW, установленной на IIS по умолчанию. А это все тот же FW

    2.2. Решение 1 – смена пула приложений на сайте

    site > actions > Основные настройки ("Main settings") > LMB > Окно "Изменение сайта"
    Окно "Изменение сайта" > кнопка "Выбрать" > LMB > Окно "Выбор пула приложений"
    Окно "Выбор пула приложений" > ListBox “Пул приложений” > выбрать ASP.NET v4.0 или ASP.NET v4.0 Classic

    2.3. Решение 2 – смена пула приложений по умолчанию для всех создаваемых сайтов 

    sites > actions > Определить значение по умолчанию для веб-сайта ("web-site default settings") > LMB > Окно "Значения по умолчанию для сайта" ("web-site default settings")
    Окно "Значения по умолчанию для сайта" ("web-site default settings") > вкладка "Общие" ("Main" или "Common") > развернутьBкладка "Общие" ("Main" или "Common") > Параметр "Пул приложений" ("ApplicationPool") > изменить DefaultAppPool  на ASP.NET v4.0 или ASP.NET v4.0 Classic
    Заново развернуть решение. 

    2.4. Результат – ошибка устранена, приложение не запускается

    3. Проблема – не запускается приложение

    3.1. Причина - как правило, веб сервис создается с двумя стартовыми страницами YouProjectTestPage (html  и aspx), a IIS по умолчанию назначает несколько стартовых страниц типа default.aspx, default.htm, index.htm и т.п., но никак не вашу страничку.

    3.2. Решение 1 – добавить стартовую страницу, сгенерированную VS, в IIS

    site > Группа IIS (IIS) > Иконка "Документ по умолчанию" ("Default page") > LMB > Главная панель "Документ по умолчанию" ("Default page")
    Главная панель "Документ по умолчанию" ("Default page") > actions > Добавить (Add) > LMB > Окно "Добавить документ по умолчанию "
    Окно "Добавить документ по умолчанию " > ввести наименование стартового окна, генерированное VS 2008 (2010)

    3.3. Решение 2 - в VS 2008 (2010) переименовать стартовые страницы веб сервиса в соответствии со стартовыми страницами IIS

    3.4. Результат - проект запускается, но БД не доступна.

    4. Проблема – БД недоступна

    4.1. Причина - когда в VS оганизуется подключение к БД, VS самостоятельно организует взаимодействие с SQL. При хостинге же вход на SQL выполняется из IIS, который ничего подобного и не думал организовывать (ошибка 15401 кажется).

    4.2. Решение - изменить удостоверение пула приложений с ApplicationPoolIdentity на LocalService или NetworkService

    pools > выбранный пул (ASP.NET v4.0 или ASP.NET v4.0 Classic)  > MB > actions > Дополнительные параметры (Addition settings) > LMB > Окно «Дополнительные параметры» («Addition settings»)
    Окно «Дополнительные параметры» («Addition settings») > Вкладка «Модель процесса» > развернуть > Параметр «Удостоверение» («Identity») > выбрать LocalService или NetworkService

    4.3. Результат - проект запускается, БД доступна или не доступна.

    5. Проблема – предыдущая

    5.1. Причина – SQl server не настроен на вход LocalService или NetworkService.

    5.2. Решение - настроить SQL Server на вход LocalService или NetworkService

    Добавить имя входа LocalService или NetworkService на SQL server, при этом обратить внимание, что имя входа имеет структуру domain/name и по умолчанию генерится как computer/name, необходимо добавлять NT AUTHORITY/LocalService или NT AUTHORITY/NetworkService;
    Добавить разрешения в запрашиваемую базу данных

    5.3. Результат – все должно состояться.

     


    ova







    18 июня 2011 г. 18:06