Как в iis опубликовать файл

Обновлено: 06.07.2024

Использование веб-сервера и публикаций информационных баз — один из способов оптимизации 1С. Особенно при работе с ИБ в файловом варианте. Так безопаснее. Сотрудники подключаются к ИБ 1С через браузер или тонкий клиент , не имея прямого доступа к файлам.

В статье расскажем, как решали возникающие вопросы по настройкам Internet Information Services. Через призму своего опыта и коллег.

Сертификат выдается сроком на 90 дней. Для автоматического продления создается периодическое задание в Планировщике. При запуске задачи сайт должен быть доступен (пройти проверку домена) по 80-му порту.

II. Типовая настройка и публикация информационных баз на IIS

На что обратить внимание:

1. Состав компонентов IIS — в Интернете полно инструкций и указаний. Повторяться не будем.

2. Установка 1С необходимой разрядности . Варианта 2: x86 (32-разрядное приложение) или x64. Обязательно выбираем «Модули расширения веб-сервера».

3. Права для встроенной группы /пользователю веб-сервера (IUSR) на папки:

  • с установленной платформой — на «чтение и выполнение» (для старта процессов);
  • самих расположений ИБ — на «изменение» (в случае файлового варианта).

4. Публикация базы через Конфигуратор 1С . Возможно потребуется открыть программу с повышенными правами — «Запуск от имени администратора».

5. Для 32-разрядного клиента 1С в диспетчере IIS включаем разрешение запуска ( DefaultAppPool — Дополнительные параметры — Разрешены 32-разрядные приложения = True ). Для 1C x64 — значение не меняем.

6. На странице сопоставления обработчиков для «1С Web-service Extension» потребуется указать путь к исполняемому модулю :

  • x86 — «C:\Program Files (x86)\1cv8\8.3.x.xx\bin\wsisapi.dll»;
  • x64 — «C:\Program Files\1cv8\8.3.x.xx\bin\wsisapi.dll».

Либо изменяем путь к библиотеке в файлах web.config через Блокнот (располагается, как правило, в c:\inetpub\wwwroot\<имя базы>).

Если в п. 2 все сделано правильно — по указанному пути должен присутствовать файл wsisapi.dll.

7. В частных случаях требуется перезапуск служб IIS . Выполните «Перезапустить» в оснастке управления или перезагрузите сервер.

✅ Соблюдаем соответствие разрядности: если запускаем и публикуем 64-разрядный клиент 1С:Предприятие, то dll также должна быть 64-битной версии.

Если публикуем 32-разрядную версию 1С, то ставим разрешение запуска 32-разрядных приложений на IIS и проверяем путь к wsisapi из каталога x86.

III. Если клиент 1С зависает при подключении к базе по web

Прежде посмотрите этот материал — там общие рекомендации.

Другой случай. Файловая ИБ опубликована на IIS. После авторизации зависает на эмблеме 1С. При открытии Конфигуратора — все нормально.

В журналах Windows ошибка «Процесс, обслуживающий пул приложений "1С", не ответил на команду ping».

  • проверьте права на папку с базой 1С для IUSR/IIS_IUSRS, уровень доступа — на «изменение»;
  • в оснастке IIS «Пулы приложений — <пул_1С> — Дополнительные параметры — Модель процесса» задайте для « Максимальная задержка отклика при проверке связи » значение, превышающее 90 секунд;
  • посмотрите на поведение IIS при «Проверка связи включена» = False.
📝 Из справки: установка [pingingEnabled] (Проверка связи) в значение false не позволит IIS проверять, выполняется ли рабочий процесс, и таким образом сохранит его активным до остановки процесса отладки.

✅ Установка «Максимальное время отклика пинга» в большое значение позволит IIS продолжать наблюдение за рабочим процессом.

Информационная база 1C опубликована на IIS. При работе через тонкий клиент, при нажатии на «Отчеты» вываливается ошибка.

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

✅ Откройте настройки пула приложений и проверьте «Режим управляемого конвейера» = «Classic».

Вы можете использовать средство публикации для импорта параметров публикации, а затем развернуть приложение. В этой статье мы используем параметры публикации для IIS.

Файл параметров публикации ( *.publishsettings) отличается от профиля публикации ( *.pubxml). Файл параметров публикации создается в IIS, после чего его можно импортировать в Visual Studio. Visual Studio создает профиль публикации.

Предварительные требования

  • Установите последние обновления для Visual Studio, выбрав Справка > Проверить обновления.
  • Добавьте рабочую нагрузку, выбрав Инструменты > Получить средства и компоненты.

Службы IIS в Windows не поддерживают создание параметров публикации. Однако вы по-прежнему можете публиковать в службах IIS с помощью средства публикации в Visual Studio.

Установка и настройка веб-развертывания в Windows Server

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

Установщик веб-платформы для служб IIS позволяет устанавливать версию 3.6, а не 4.0, поэтому в этой статье мы рекомендуем использовать именно эту версию.

Если компонент веб-развертывания уже установлен в Windows Server, удалите его, выбрав Панель управления > Программы > Удаление программы.

После этого установите веб-развертывание версии 3.6 для серверов размещения в Windows Server.

Чтобы установить веб-развертывание для серверов размещения, используйте установщик веб-платформы (WebPI). (Чтобы найти ссылку на установщик веб-платформы в службах IIS, выберите пункт IIS в левой области диспетчера сервера. В области сервера щелкните сервер правой кнопкой мыши и выберите Диспетчер служб IIS. Затем воспользуйтесь ссылкой Получить новые компоненты веб-платформы в окне Действия.) Кроме того, установщик веб-платформы (WebPI) можно получить в разделе скачиваемых файлов.

В установщике веб-платформы компонент Веб-развертывание версии 3.6 для серверов размещения находится на вкладке "Приложения".

Если вы еще не установили сценарии и средства управления IIS, сделайте это на данном этапе.

Перейдите в раздел Выбор ролей сервера > Веб-сервер (IIS) > Средства управления, после чего выберите роль Сценарии и средства управления IIS, нажмите кнопку Далее и выполните установку роли.

Установка сценариев и средств управления IIS

Эти сценарии и средства необходимы для создания файла параметров публикации.

(Необязательный шаг) Проверьте работоспособность веб-развертывания. Для этого выберите Панель управления > Система и безопасность > Администрирование > Службы и проверьте следующее:

служба агента веб-развертывания запущена (в прежних версиях название этой службы отличалось);

служба веб-управления запущена.

Если какая-то из этих служб агента не запущена, перезапустите службу агента веб-развертывания.

Создание файла параметров публикации в IIS в Windows Server

Закройте и снова откройте консоль управления IIS, чтобы отобразить обновленные параметры конфигурации в пользовательском интерфейсе.

В службах IIS щелкните правой кнопкой мыши элемент Веб-сайт по умолчанию и выберите Развернуть > Включить публикацию веб-развертывания.

Настройка конфигурации веб-развертывания

Если меню Развернуть не отображается, ознакомьтесь с предыдущим разделом, чтобы проверить, выполняется ли веб-развертывание.

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

Щелкните Настройка.

Выходные данные в панели Результаты показывают, что права доступа предоставлены конкретному пользователю, а в указанном в диалоговом окне месте был создан файл с расширением .publishsettings.

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

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

Порту destinationAppUrl присваивается значение 80, которое по умолчанию используется для служб IIS.

Если на следующих этапах вам не удается подключиться к удаленному узлу из Visual Studio с использованием имени узла, попробуйте использовать вместо имени узла IP-адрес сервера.

Если вы выполняете публикацию в службах IIS, работающих на виртуальной машине Azure, необходимо открыть входящий порт для веб-развертывания и служб IIS в группе безопасности сети. Подробные сведения см. в статье Открытие портов для виртуальной машины.

Скопируйте этот файл на компьютер, на котором выполняется среда Visual Studio.

Импорт параметров публикации в Visual Studio и развертывание

Если ранее вы настроили какие-либо профили публикации, появится панель Опубликовать. Щелкните Создать или Создать профиль.

Выберите вариант для импорта профиля.

В открывшемся диалоговом окне Публикация выберите Импортировать профиль.

В открывшемся диалоговом окне Выбрать целевой объект для публикации выберите Импортировать профиль.

Выбор команды "Опубликовать"

Перейдите в расположение файла параметров публикации, созданного в предыдущем разделе.

В диалоговом окне Импортировать файл параметров публикации перейдите к профилю, созданному в предыдущем разделе, выберите его и нажмите кнопку Открыть.

Щелкните Готово, чтобы сохранить профиль публикации, а затем щелкните Опубликовать.

Visual Studio начинает процесс развертывания, а в окне вывода отображаются ход выполнения и результаты.

При появлении любых ошибок развертывания щелкните Изменить для изменения параметров. Измените параметры и нажмите кнопку Проверить для тестирования новых параметров. Если имя узла не найдено, попробуйте указать IP-адрес вместо имени узла в полях Сервер и Целевой URL-адрес.

Visual Studio начинает процесс развертывания, а в окне вывода отображаются ход выполнения и результаты.

При появлении любых ошибок развертывания щелкните Параметры для изменения параметров. Измените параметры и нажмите кнопку Проверить для тестирования новых параметров. Если имя узла не найдено, попробуйте указать IP-адрес вместо имени узла в полях Сервер и Целевой URL-адрес.

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

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

Распространенные проблемы

Рассмотрим два способа:

Размещаем на IIS Express

Создаем сайт для сервиса

Добавим шаблон сайта по контекстному меню от решения:


Получится примерно вот так:


Далее назначим сайт запускаемым проектом.


Т.к. мы хотим чтобы наш сервис располагался на этом сайте, то необходимо добавить ссылку на сервис на сайт. Для этого в контекстном меню сайта выбираем "Добавить ссылку".


Выбрать Решение/Проекты. Наш сервис.


В результате у нас появилась папка Bin.


Если сейчас нажать на сайте Ctrl+F5 (Запуск без отладки), то получим следующую страницу:


Когда сайт работает у вас в трее будет значок IIS Express.


Когда новый сайт создается в VS IIS Express автоматически назначает ему порт.

Обычно IIS Express запускается из VS когда нужно отладить сайт. Если нужно IIS Express запустить во вне VS, то можно использовать следующую командную строку:

Работаем над Web.config

На текущий момент посмотреть (Ctrl+F5) WSDL сервиса не получилось, т.к. мы не обозначили web.config.

Добавим секцию system.servicemodel в конфиг:



Тестируем сервис SOAP UI

Чтобы потестировать наш сервис проще всего использовать SOAP UI.

Открываем утилиту и создаем новый проект:


Вписываем адрес WSDL, который у нас был на странице сервиса в последнем рисунке предыдущей главы.


Нажимаем "ОК" SOAP UI видит наш сервис:


П.С. У кого была ошибка вида "soap parsing wsdl error: Unexpected element: TAG_END", тому нужно выключить прокси:


Теперь открываем Request 1, заполняем параметр метода name, нажимаем кнопку Submit.


Размещаем на IIS

Подготовка папок и файлов:

Сделаем в папке проекта папку HostIIS, а в ней папку bin


Скопируем файл *.dll и *.pdb из папки bin/debug сервиса в созданную папку для IIS


Скопируем web.config из папки сайта для IIS Express в папку HostIIS


Создадим папки в нашем решении аналогичной структуры:



В каждую папку добавим те файлы которые там должны быть



Сделаем так, чтобы после построения сервиса файлы *.dll и *.pdb автоматически копировались в нашу новую bin. Для этого в свойствах нашего сервиса на событии после построения укажем переписывать собранные файлы в нашу новую bin.

Теперь перейдем к IIS.

Откроем диспетчер IIS (команда inetmgr в cmd). Если ничего не открывается, то у вас не установлены компоненты IIS, их нужно установить, а потом зарегистрировать aspnet_regiis.exe (подробнее в google);


Добавим новое приложение к сайту по умолчанию



Укажем Имя, наш пул по умолчанию, и физический путь до папки которую мы делали специально для IIS.

Разрешим пользователям пула приложений читать с нашей папки.


Поправим relative address в web.config на relativeAddress="./ARVIClubService.svc"

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

Установите права учетной записи Windows для пользователя рабочего процесса. Пользователь, от имени которого запускается рабочий процесс (w3wp.exe), нуждается в доступе для чтения к каталогам приложения. Если приложение обращается к другим ресурсам, например, к системному реестру или к журналу событий, для учетной записи рабочего процесса понадобится сконфигурировать разрешение на доступ к этим ресурсам.

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

Основная задача связана с развертыванием содержимого приложения на сервере IIS 8. В этой статье предполагается наличие у вас прав администратора и вход в систему сервера от имени учетной записи администратора. Если используется разделяемый сервер или поставщик услуг хостинга, то поставщик пришлет сведения об учетной записи, которая должна применяться при развертывании веб-сайта. Для простоты мы будем считать, что работа выполняется с учетной записью администратора, но при управлении собственным сервером следует подумать об использовании менее привилегированной учетной записи.

Развертывание посредством копирования файлов

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

Подготовка IIS

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

IIS нужно подготовить так, чтобы было куда скопировать наш файл. В IIS Manager выберите элемент Default Web Site. Как следует из его имени, это сайт по умолчанию на сервере. Щелкните на нем правой кнопкой мыши и в контекстном меню выберите пункт Explore (Проводник), чтобы отрыть окно проводника Windows для заданного по умолчанию каталога IIS, которым является inetpub\wwwroot на системном томе (как правило, C:\).

Создайте каталог WebsiteDeployment, а в нем - каталог FileCopy (чтобы обеспечить существование пути inetpub\wwwroot\WebsiteDeployment\FileCopy). Закройте окно проводника, чтобы вернуться в IIS Manager. Щелкните правой кнопкой на записи Default Web Site и в контекстном меню выберите пункт Refresh (Обновить), чтобы увидеть новый каталог.

Веб-сайт

Развертывание веб-сайта

При использовании этой методики развертывания нужно просто скопировать файлы в созданный каталог. Переместите файлы веб-сайта на сервер любым подходящим способом - посредством общего сетевого диска, съемного диска USB и т.п. - и скопируйте файлы Default.aspx и Default.aspx.cs в каталог FileCopy, созданный на сервере.

Когда файлы будут скопированы, вернитесь в окно IIS Manager на сервере, щелкните правой кнопкой на папке FileCopy в древовидном представлении и в контекстном меню выберите пункт Refresh. В нижней части экрана щелкните на кнопке Content View (Просмотр содержимого). В центральной части окна должны отобразиться два файла веб-сайта, как показано на рисунке ниже:

Элементы развернутого веб-сайта

В этом состоит наиболее важная часть этой технологии развертывания - вначале должна быть создана структура каталогов, которая представляет необходимый URL-адрес, а затем в готовые каталоги копируются файлы веб-сайта. Посмотрим, как это выглядит на практике. Для этого выберите FileCopy в IIS Manager и щелкните на ссылке Browse (Обзор) в правой части окна. Откроется веб-браузер с загруженным URL-адресом созданной папки. Окно браузера должно выглядеть подобно показанному на рисунке ниже:

Просмотр развернутого веб-сайта

Взглянув на URL-адрес адрес, можно удостовериться в том, что был получен желаемый результат. Браузер загрузил веб-сайт из следующего адреса:

Вспомните, что localhost - это специальное имя, обозначающее текущий компьютер, а URL-адрес, в котором не указан порт, будет использовать порт 80. (В моем случае я переместил сайт на порт 8080 по причинам, указанным в предыдущей статье). Можете проверить это, направив браузер по следующему URL-адресу:

Результат будет полностью аналогичен предыдущему (professorweb в данном случае имя сервера).

Конфигурирование развертывания

Веб-сайт, функционирующий под управлением версии .NET Framework 4

Вернитесь в браузер и перезагрузите страницу.

Преобразование в приложение

Откроется диалоговое окно Add Application (Добавление приложения). Используемый пул приложений можно изменить, щелкнув на кнопке Select (Выбрать). Настроить учетную запись пользователя, которую IIS будет применять для доступа к содержимому сайта, можно с помощью кнопок Connect as. (Подкл. как. ) и Test Settings. (Тест настроек. ). Пока что просто щелкните на кнопке ОК. Возможно, придется выбрать пункт Refresh (Обновить) в меню View (Вид) (или, как это часто имеет место, закрыть и снова открыть IIS Manager), но теперь значок записи FileCopy в древовидном представлении должен измениться.

Развертывание с помощью Visual Studio

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

Вы можете создавать виртуальный каталог при создании нового проекта.

Вы можете использовать функцию Copy Web Site (Копировать веб-сайт) для передачи существующего веб-сайта в виртуальный каталог.

Вы можете использовать функцию Publish Web Site чтобы скомпилировать свой ​​сайт и передать его по новому адресу.

Создание виртуального каталога для нового веб-сайта

При создании веб-сайта в Visual Studio, вы можете одновременно создать виртуальный каталог для этого веб-сайта. Если вы сделаете это, Visual Studio не будет использовать встроенный тестовый сервер IIS Express. Вместо этого, все ваши запросы будут обрабатываться полной версией IIS.

Создание сайта в IIS

Такой подход не является лучшим т.к. вы не сможете настроить некоторые параметры, такие как страницы по умолчанию, пользовательские ошибки и т.п. Вместо создания нового виртуального каталога с помощью Visual Studio лучше будет выбрать существующий каталог IIS, который в свою очередь можно сконфигурировать с помощью IIS Manager. Для этого щелкните по кнопке Browse (Обзор) и выберите нужный виртуальный каталог:

Выбор виртуального каталога IIS

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

Копирование веб-сайта

Visual Studio также включает в себя быстрый и простой способ для передачи файлов веб-приложения. Вам просто нужно выбрать в меню WebSite --> Copy Web Site. Откроется новое диалоговое окно Visual Studio, которое покажется знакомым любому, кто имел дело с различными IDE-программами для работы с сайтами, такими как Dreamweaver или Expression Web:

Копирование файлов веб-сайта

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

File System

Это самый простой выбор - вы копируете файлы сайта внутри текущей файловой системы.

Local IIS

Позволяет выбирать виртуальные каталоги локального сервера IIS. Это удобно если сайт нужно будет разместить в другом каталоге.

FTP Site

Обеспечивает доступ к удаленному сайту через FTP. Многие хостинг-провайдеры предлагают доступ к сайтам через FTP, так что благодаря этой настройке вы можете сразу разворачивать свой сайт на удаленном веб-сервере, не прибегая к услугам различных FTP-программ наподобие TotalCommander:

Развертывание сайта через FTP

Эта опция предлагает подключение к сайту по URL-адресу с использованием расширения FrontPage Extensions.

Как только вы выберите соответствующий пункт назначения, нажмите кнопку Open. Visual Studio попытается подключиться к удаленному сайт и получить список файлов.

Читайте также: