Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.12.18;
Скачать: CL | DM;

Вниз

Создание службы - отказывается запускаться   Найти похожие ветки 

 
George   (2010-06-28 08:47) [0]

Delphi version: BDS 2010
Win version: WinXP SP2
Добрый утр.
Недавно вот приспичило службу создать, прочел небезызвестную, как я понял, в интернетах статью: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1348
Сервис написал. Зарегистрировал. Запускаться он не хочет.
Код службы из-за размера выложил по ссылке: http://code.shareservices.net/code.php?id=474
При запуске службы вылетает все известный диалог об ошибке и предложение отправить все свои конспиративные данные майкрософту. В системных логах тоже только эти сообщения, мол kernel32 глюкнул. Где мне искать косяк, есть идеи?


 
George   (2010-06-28 10:04) [1]

Извиняюсь за ссылку с кодом - она кривая.
Верная: http://code.ctrl-v.it/code.php?id=474


 
George   (2010-06-28 10:12) [2]

Путем шаманских телодвижений найден затык в файле проекта:
 if not Application.DelayInitialize or Application.Installing then
   Application.Initialize;
 OutputDebugString(PChar("Application initialized successfully"));
 Application.CreateForm(TIQMailServer, IQMailServer);
 OutputDebugString(PChar("Service created successfully"));
 IQMailServer.ADOConnection.Connected := true; // Вот тут то и повисает
 OutputDebugString(PChar("DB connected successfully"));
 Application.Run;

Строка подключения:
Provider=MSDASQL.1;Password=masterkey;Persist Security Info=True;User ID=SYSDBA;Extended Properties="DSN=FireBird;Driver=Firebird/InterBase(r) driver;Dbname=D:\Проекты\IQMailServer\EXE\REGDB.FDB;CHARSET=NONE;UID=SYSDBA;Role =SYSDBA;Client=D:\Проекты\IQMailServer\EXE\fbembed.dll;"
Я правильно догадываюсь, что надо где то в правах доступа копаться?


 
George   (2010-06-28 10:24) [3]

Ладно, раз уж пошла такая пьянь - то выяснил и это. Запустил службу от имени текущего пользователя - и она запустилась. Теперь вот вопрос, как обеспечить ей подобную работу? Я к тому, что при переносе на другой компьютер хочется же чтобы запускалась сразу нормально, без лазания в настройках службы. Это как-то при регистрации службы регулируется?


 
Leonid Troyanovsky ©   (2010-06-28 11:35) [4]


> George   (28.06.10 10:24) [3]

http://rsdn.ru/?summary/2393.xml
http://rsdn.ru/?article/qna/baseserv/privedit.xml

--
Regards, LVT.


 
George   (2010-06-28 12:52) [5]


> Leonid Troyanovsky ©   (28.06.10 11:35) [4]

Спасибо, посмотрю.

Я тут продолжаю исследовать. Дело в том, что по идее права, под которыми по умолчанию запускается служба, их же должно быть достаточно? Я вспомнил подобную ситуацию с установкой Постгрес сервера под винду - там служба не запускалась с дефолтными правами, пока не меняли права у папки Data. Так вот я подумал, может быть достаточно сменить права у моей БД или папки с БД? На данный момент у файла с БД полный доступ есть для Пользователей, Администраторов и SYSTEM. Владелец файла - Администраторы. Сама БД - Firebird. Могут ли это быть особенности подключения к самому файрберду?


 
Leonid Troyanovsky ©   (2010-06-28 12:57) [6]


> George   (28.06.10 12:52) [5]

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

Если папка сетевая, то SYSTEM - недостаточно.

> На данный момент у файла с БД полный доступ есть для Пользователей,
>  Администраторов и SYSTEM.

Пользователям, IMHO, доступ к файлу БД не нужен.
Доступается ведь сервис FB.

--
Regards, LVT.


 
George   (2010-06-28 13:01) [7]


> Если папка сетевая, то SYSTEM - недостаточно.

Да нет, локальная папка.


> Доступается ведь сервис FB.

Хм, а таки доступается не совсем сервис, ибо забыл упомянуть, что это FB Embedded. Т.е. доступ через ODBC драйвер + дллку. Наверное, стоит глянуть права и у этих компонентов.


 
George   (2010-06-28 13:05) [8]

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


 
Leonid Troyanovsky ©   (2010-06-28 14:01) [9]


> George   (28.06.10 13:05) [8]

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

Взаимодействие со столом не нужно (forever).
Ошибка может быть, например, от того, что
DSN не определен для доступающегося.

А зачем здесь, во-ще, ODBC?
Есть, вроде, и более прямые способы доступа к FB.

--
Regards, LVT.


 
George   (2010-06-28 14:32) [10]


> Ошибка может быть, например, от того, чтоDSN не определен
> для доступающегося.

Вооот. А я, к стыду своему, не знаю, как определить.


> А зачем здесь, во-ще, ODBC? Есть, вроде, и более прямые
> способы доступа к FB.

Просто ODBC для меня лично привычнее + вроде как универсальнее. Тут я исходил только из скорости разработки - итак на ходу пришлось изучать как службы делаются, времени не хватает.


 
Leonid Troyanovsky ©   (2010-06-28 14:39) [11]


> George   (28.06.10 14:32) [10]

> Вооот. А я, к стыду своему, не знаю, как определить.

Ну, наверное, на закладке System DSN by ODBC Administrator.

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2011.12.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
15-1314168862
OW
2011-08-24 10:54
2011.12.18
Два простых вопроса по Oracle и PL/SQL Developer


15-1314204395
Кто б сомневался
2011-08-24 20:46
2011.12.18
Свежая Windows 7 - проблемы с удалением файла


2-1315467611
Pushok
2011-09-08 11:40
2011.12.18
проверить ветки в TreeView


15-1314348069
androidios
2011-08-26 12:41
2011.12.18
Нужно перевести 2 функции с php на delphi за $


2-1315215051
LinkolnBurrows
2011-09-05 13:30
2011.12.18
Проблема с использованием dll