Создание службы

Среда IWS позволяет создать службу Windows, автоматически запускающую проект. Службы Microsoft Windows, известные как NT службы, позволяют создать конечные выполняемые приложения, обладающие своей рабочей сессией. Существует возможность автоматического запуска этих сессий при загрузке системы компьютера в обход пользовательского стола Windows. Это свойство очень удобно для серверов или прочих машин, к которым не предъявляются требования по поддержке рабочих столов для пользователей. Службу можно настроить таким образом, чтобы она соответствовала политике безопасности: запуск приложения для определённого аккаунта Windows, или запуск приложения с правами, отсутствующими у вошедшего в систему пользователя. Более подробную информацию о службах можно найти в библиотеке Microsoft Developer Network (MSDN).


Существует несколько причин, по которым имеет смысл использовать службу Windows.




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


Заметим: Все описываемые ниже процедуры тестировались на операционной системе Microsoft Windows XP Service Pack 3.

Также для проведения этих процедур необходимо находиться в системе с правами администратора и уметь пользоваться консолью управления компьютером (Computer Management console). Открыть диалог управления компьютером можно, нажав правой кнопкой мыши на ярлыке «Мой компьютер» и выбрав из появившегося меню пункт «Управление» (Manage).


Существует два способа создания службы, запускающей приложение: формировать службу, используя либо инструмент среды (Service Configuration), либо утилиту командной строки, также встроенной в IWS.


Инструмент создания службы


Службу запуска приложения можно создать с помощью внутреннего инструмента, который можно вызвать пунктом главного меню Инструменты > Создать Службу (Tools > Service Configuration). При этом открывается следующий диалог:





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






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


Чтобы создать новую службу:


  1. Необходимо нажать кнопку , расположенную справа от поля «Приложение», чтобы определить файл приложения и путь к нему.
  2. В полях «Пользователь» и «Пароль» (при необходимости) указать имя пользовательского аккаунта системы Windows, для которого создаётся служба, и его пароль.
  3. Определить способ запуска службы.
  4. Нажать кнопку «Применить» (Apply), после чего будет создана служба запуска приложения.


Как только служба создана, её имя “InduSoft Web Studio” появляется в списке служб Пуск > Панель управления > Администрирование >Службы (Start > Control Panel > Administrative Tools > Services). В этом же диалоге возможен перезапуск или остановка работы службы.


Утилита командной строки


Создание службы может обеспечить и утилита командной строки StdSvcInst.exe. Утилита позволяет оперировать расширенным набором опций, нежели инструмент среды, например, задание собственного имени и описания службы. Она может использоваться без запущенной среды разработки. Утилита располагается в папке \BIN директории хранения среды. Вызов утилиты организуется из командной строки переходом в папку \BIN и вызовом специальной команды с необходимыми опциями:


StdSvcInst { -create -app filepath -startup { auto | manual | disabled } -user username -password password -name displayname -descr description | -start | -stop | -delete }


-create

Создать службу.

-app filepath

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


-startup { auto | manual | disabled }

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


-user username

Задаётся пользовательский аккаунт системы Windows, для которого создаётся служба. Опцию можно не указывать, если планируется выполнение службы на локальной системе.


-password password

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


-name displayname

Задаётся имя службы, которое будет содержаться в списке служб компьютера. В командной строке его необходимо заключить в кавычки. Опцию определять не обязательно, существует имя по умолчанию: “Studio”.


-descr description

Содержит описание службы, которое будет выведено на экран в списке служб компьютера. Описание следует заключать в кавычки. Опция не обязательна для заполнения.


-start

Это команда, запускающая службу. Альтернативным ей является нажатие кнопки «Старт» диалога управления компьютером.


-stop

Команда останавливает службу.

-delete

Удаление службы.

Пример: создание службы

Файл приложения

C:\Documents and Settings\user_name\My Documents\InduSoft Web Studio v6.1 Projects\application_name/application_name.app

Режим запуска

Automatic

Пользователь

IWS

Пароль

IWS

Имя службы

“InduSoft Web Studio”

Описание службы

“Starts a IWS application”


Обратим внимание, что в системе должен быть зарегистрирован аккаунт с именем “IWS” и таким же паролем.


Для создания службы конкретного примера:


  1. Убедиться, что текущий зарегистрированный пользователь имеет привилегии администратора.
  2. Открыть командную строку.
  3. Перейти в папку \BIN: cd C:\Program Files\InduSoft Web Studio v6.1\Bin
  4. Ввести команду: StdSvcInst create app "C:\Documents and Settings\user_name\My Documents\InduSoft Web Studio v6.1 Projects\application_name/ application_name.app" -startup auto user IWS -password IWS name "InduSoft Web Studio" descr "Starts IWS application".


В случае успешного выполнения программы, система выдаст сообщение Service created. В противном случае на экране появится код ошибки.


Пример: изменение файла приложения


Допустим, после создания службы возникла необходимость определить для неё другое приложение. Это возможно, изменив опцию app:


  1. Убедиться, что в системе зарегистрирован пользователь с правами администратора.
  2. Остановить службу приложения.
  3. Открыть командную строку.
  4. Перейти в папку Bin.
  5. Ввести команду, которая, например, привязывает к службе NTDemo приложение: StdSvcInst app "C:\Program Files\InduSoft Web Studio v6.1\Demos\NTDemo\ NTDemo.app"


Пример: удалить службу


Чтобы удалить службу нужно:


  1. Убедиться, что в системе зарегистрирован пользователь с правами администратора.
  2. Остановить службу приложения.
  3. Открыть командную строку.
  4. Перейти в папку Bin.
  5. Ввести команду: StdSvcInst delete


Задание привилегий пользователю


Служба выполняется под тем аккаунтом Windows, который был задан в поле «Пользователь» (или опцией user утилиты командной строки). Если для корректного выполнения приложения среде требуются некоторые ресурсы, недоступные по причине отсутствия привилегий пользователя заданного аккаунта, выполнения приложения станет невозможным. Поэтому важной процедурой становиться наделение службы требуемыми привилегиями.


Заметим: все ниже следующие операции может выполнить только обладающий правами администратора пользователь.


Разрешение регистрации аккаунта в роли службы


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


  1. Открыть диалог Пуск > Панель управления > Администрирование > Локальная политика безопасности.
  2. В левом разделе диалога выбрать «Параметры безопасности / Локальные политики / Назначение прав пользователей».
  3. В списке политик (справа) дважды щёлкнуть «Вход в качестве службы».



  1. В появившемся диалоге свойств службы нажать кнопку «Добавить пользователя или группу» (Add User or Group).


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


  1. Нажать кнопку ОК.


Предоставление пользователю неограниченного управления директорией приложения


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


  1. Открыть Проводник (Windows Explorer).
  2. Выбрать Сервис > Свойства папки (Tools > Folder Options). Откроется диалог свойств папки.
  3. Перейти на закладку Вид (View).
  4. Убедиться, что дезактивирована опция «Использовать простой общий доступ к файлам» (Use simple file sharing).



  1. Нажать ОК, чтобы закрыть этот диалог.
  2. В окне проводника найти и выделить директорию хранения файла приложения. В примере: APPL111.app.
  3. Нажать правой кнопкой мыши на имени папке (левая часть окна) и выбрать из появившегося меню пункт «Свойства».



  1. В открывшемся диалоге перейти на закладку «Безопасность» (внимание, Windows XP + SP3).
  2. Нажать кнопку «Добавить» (Add), что позволит добавить требуемого пользователя в список.
  3. В списке выделить требуемого пользователя и установить метку «Разрешить» (Allow) для опции неограниченного управления (Full Control).
  4. Нажать кнопку ОК, чтобы все установки возымели силу.
  5. Закрыть Проводник.


Разрешение выполнения модулей OPC клиента и сервера для пользователя


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


  1. Открыть Службы компонентов (Пуск > Панель управления > Администрирование > Службы компонентов, Component Services).
  2. В левой части окна выбрать «Корень консоли / Компьютеры / Мой компьютер / Настройка DCOM»



  1. Нажать правой кнопкой на имени Studio Scada OPC Server и выбрать из появившегося меню пункт «Свойства». Откроется диалог свойств сервера Studio Scada OPC.
  2. Перейти на закладку «Удостоверение».
  3. Выбрать опцию «Указанный пользователь» и заполнить поля данными того пользователя, для которого создавалась служба запуска приложения.



  1. Нажать ОК, чтобы все настройки обрели силу, и закрыть диалог.
  2. Закрыть диалог Службы Компонентов.



При возникновении проблем


В случае запуска среды службой Windows отсутствует пользовательский интерфейс. Поэтому, возникновение ошибки будет трудно отследить, и текст её сообщения будет зафиксирован только как событие приложения Windows. Этот текст можно прочитать с помощью диалога Просмотр Событий (Пуск > Панель Управления > Администрирование > Просмотр Событий).



Created with the Freeware Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation