11. Развертывание решения на узле интернет сервер

11.1. Скачать архив с решением

11.1.1. Скачайте архив с решением

CarShop

11.2. Редактирование web.config

11.2.1. Извлеките из архива все содержимое в какую-либо папку, (к примеру, с именем CarShop)
11.2.2. Найдите в содержимом файл c именем web.config
11.2.3. Программой Блокнот откройте файл и именем web.config (для этого правым кликом мыши на файле вызвать меню, в появившемся меню выбрать "Открыть с помощью", затем "Выбрать программу" и выбрать Блокнот)

<connectionStrings>
    <add name="DefaultConnection" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=ТУТ_ИМЯ_БД;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopContext;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopArticleContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopArticleContext;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopRestContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopRestContext;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopIncomeContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopIncomeContext;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopSalesContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopSalesContext;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopOrdersContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopOrdersContext;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopMsTecDocContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopMsTecDoc2013Q4;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
</connectionStrings> 

11.2.4. Вам необходимо отредактировать настройки в этом блоке:
(11.2.4.1.)
ТУТ_ПАРОЛЬ изменить на пароль, который вы используете для входа в MSSQL-Server с помощью MSSQL Management Studio
(11.2.4.2.)
ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА изменить на настройки, которые вы вносили в поле "Имя сервера" для входа в MSSQL-Server с помощью MSSQL Management Studio

11.2.5. Для DefaultConnection необходимо изменить ТУТ_ИМЯ_БД на имя БД, которая была создана

на шаге 9. Создание экземпляра БД для поддержки учетных записей и безопасности :


    <add name="DefaultConnection" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=ТУТ_ИМЯ_БД;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>

11.2.6. ЗАМЕЧАНИЕ: Если при развертывании

на шаге 3. Создание баз данных с использованием утилиты WpfCarShop
для какой-либо базы данных было изменено имя, то эти изменения должны быть внесены в файл web.config

3.2.7. Сохранить изменения, которые вы сделали через меню "Файл" и затем "Сохранить". После этого закройте блокнот

11.3. Развертывание инфраструктуры для второго магазина или второй торговой сети

Если вам понадобилось зарегистрировать второй магазин в данном web-решении, то у вас есть выбор:
1. Второй мангазин хранит свои данные в тех же базах данных, что и исходный
2. Второй мангазин хранит свои данные в отдельных базак данных (является предпочтительным вариантом)

В первом случае нет необходимости в проведении дополнительных работ по развертыванию решения.

Во втором случае вы должны создать дубли баз данных. Дубли баз данных будут отличаться именами.
К примеру, дубль для Initial Catalog=CarShopRestContext вы решили назвать Initial Catalog=CarShopRestZZZ.
Для того чтобы решение смогло использовать эту новую БД вы должны:
1. Создать БД
2. Зарегистроровать эту БД в web-решении.

Как создать вторую копию БД с другим именем описано в пункте 3. Создание баз данных с использованием утилиты WpfCarShop
Для того чтобы зарегистроровать эту БД в web-решении необходимо:
1. Открыть Блокнотом файл web.config
2. В блок данных


<connectionStrings>
...
...
</connectionStrings> 

Внести еще одну дополнительную запись

    <add name="CarShopRestZZZ" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopRestZZZ;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>

Обратим внимание чем отличается дополнительная запись от исходной:
В дополнительной записи имеем <add name="CarShopRestZZZ"
В в исходной записи имеем <add name="CarShopRestContext"

В дополнительной записи имеем Initial Catalog=CarShopRestZZZ;
В в исходной записи имеем Initial Catalog=CarShopRestContext;

Сохраните изменения через меню "Файл" и затем "Сохранить". После этого закройте блокнот.

Приведем перечень баз данных, которые можно дублировать описанным выше способом для второго магазина одной и той же торговой сети
CarShopRestContext (каталог остатков)
CarShopIncomeContext (каталог приходных ведомостей и переоценки)
CarShopSalesContext (каталог продаж)
CarShopOrdersContext (каталог заказов)

Приведем перечень баз данных, которые можно дублировать описанным выше способом для магазина другой торговой сети
CarShopArticleContext (каталог артикулов)
CarShopRestContext (каталог остатков)
CarShopIncomeContext (каталог приходных ведомостей и переоценки)
CarShopSalesContext (каталог продаж)
CarShopOrdersContext (каталог заказов)

Замечание:
CarShopContext (каталог инфраструктуры) не может иметь дублей!!!
CarShopMsTecDocContext (каталог TecDoc в формате MSSQL) дублировать можно, если нагрузка на один SQL-сервер превышает возможности сервера.

11.4. Регистрация приложения в среде интернет сервер

11.4.1. Скопируйте всю папку CarShop, которая создана на шаге (11.2.1.) в папку с именем
C:\inetpub\wwwroot
11.4.2. Запустите Диспетчер служб IIS.
11.4.3. В левом пенале разверните узел вашего сервера.
11.4.4. В левом пенале разверните узел Сайты (Sites)
11.4.5. В левом пенале разверните узел Default Web Site
11.4.6. Станьте на узел CarShop
11.4.7. Правым кликом мыши вызовите меню и выберите пункт Конвертировать в приложение

Чтобы получить URL вашего решения в третьем пенале Действия кликните по ссылке Browse * (80) http
Будет запущен web-браузер с URL=http://localhost/CarShop/
Чтобы подключиться с другого компьютера к вашему решению в URL измените localhost на имя компьютера, где развернут ваш web-сервер.