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

Вниз

Не открывается локальная БД Interbase из сервиса, почему?   Найти похожие ветки 

 
Sergey Vorobyev   (2004-07-07 11:24) [0]

Привет всем!
Почему-то не открывается БД из службы (сервиса NT), когда указываешь (IBDatabase1.DatabaseName) локальный путь типа E:\databases\mydb.gdb. Выдает ошибку "unavailable database".
Из обычного приложения работает нормально.
Пока выхожу из положения так: задаю путь к БД localhost:e:\databases\mydb.gdb.

ОС: WinXP, DB Server: проверял на IB6,7,Firebird, код на D6

Если подробно, делаю так:
1. Создаю новый Service Application (File->New, выбираю Service Application)
2. Кидаю IBDatabase, IBTransaction, устанавливаю друг на друга.
3. Настраиваю IBDatabase (путь, user, пароль и т.п.)
4. В Service1.OnStart прописываю IBDatabase1.Open
5. Инсталю сервис: Project1 /install
6. Запускаю сервис из консоли управления службами. Происходит ошибка запуска.
7. Смотрю журнал событий операционной системы: "Service failed on start: unavailable database"

Так в чем же дело, неужели таки надо "localhost:путь"


 
Sir John ©   (2004-07-07 12:41) [1]

а какие права доступа для localhost к БД через сервис?
И еще. Попробуйте стартовать сервис без попытки открытия БД. Если стартует и работает ормально, значит, скорее всего проблемы с правами доступа.


 
Johnmen ©   (2004-07-07 12:45) [2]

Насколько помню, в данном случае путь полностью.


 
Соловьев ©   (2004-07-07 12:50) [3]

где-то читал, что желательно указывать хост(ай-пи тоже можно, но не рекомендуют).


 
Sergey Vorobyev   (2004-07-07 13:04) [4]


> а какие права доступа для localhost к БД через сервис?


не понял..
к БД подключаюсь как обычно, например user_name=SYSDBA, password=masterkey


> Попробуйте стартовать сервис без попытки открытия БД

без открытия БД сервис запускается успешно


 
VOVA   (2004-07-07 13:14) [5]

я запускал чере ADO тоже намучалса, проблема била в пути до бази, а ище нужно ожиданиє увеличить на D7 стоит 5000 я поставил 10000 и пошло целий день мучалса но запустил, тепер мучаюс з саписю в базу!!!


 
Anatoly Podgoretsky ©   (2004-07-07 13:38) [6]

Sergey Vorobyev   (07.07.04 13:04) [4]
Вопрос был какие права, в рамках файловой системы, а не права на базу и таблицы в ней.


 
Sergey Vorobyev   (2004-07-07 14:05) [7]


> [6] Anatoly Podgoretsky ©   (07.07.04 13:38)
> Sergey Vorobyev   (07.07.04 13:04) [4]
> Вопрос был какие права, в рамках файловой системы, а не
> права на базу и таблицы в ней.

Вот поэтому-то я и не понял..
Что значит права в рамках файловой системы?
Как это связано с базой или сервером Interbase ?
Что означает: "..права доступа для localhost к БД.." ?
Поясните, пожалуйста..


 
Sir John ©   (2004-07-07 15:33) [8]

попробую объяснить, хотя могут быть и неточности.
- любой пользователь, который регистрируется при входе в ОС Windows имеет свои права.
Что касается сервисов, то пользователь (как локальный так и удаленный) может
- стартовать сервис
- останавливать сервис
- перезапускать сервис
- читать данные через сервис
- записывать данные

Например, при отсутсвии прав на чтение пользователя "localhost" Вы не сможете прочитать данные из вашей БД


 
y-soft ©   (2004-07-07 15:46) [9]

Sergey Vorobyev   (07.07.04 11:24)  

Соединяйтесь через TCP


 
Sergey Vorobyev   (2004-07-07 15:49) [10]


> Например, при отсутсвии прав на чтение пользователя "localhost"
> Вы не сможете прочитать данные из вашей БД

Какой такой пользователь "localhost"?
Нет у меня такого пользователя!!!
Непосредственный доступ к файлу базы данных имеет только сервер, а не сервис или другое приложение, поэтому соединение с базой идет через сервер...
Я что-то совсем не понимаю о чем Вы говорите!
Если кто-нибудь кроме меня понял, объясните пожалуйста, А?


 
Sergey Vorobyev   (2004-07-07 15:50) [11]


> Соединяйтесь через TCP

Ну пока так и делаю


 
Sergey Vorobyev   (2004-07-08 08:19) [12]

Отсюда вывод:
пока решения этой проблемы нет


 
Anatoly Podgoretsky ©   (2004-07-08 09:44) [13]

TransparentGhost   (07.07.04 11:45) [18]
Как ты думаешь сервер сам по себе крутится в обход файловой системы и в обход прав ОС, или все таки под какой то учетной записью?


 
Reindeer Moss Eater ©   (2004-07-08 09:53) [14]

Скорее всего это просто особенность сервера, а не права на файл.
Ну не может же не быть прав на локальный том у локал систем аккаунт.


 
Sergey Vorobyev   (2004-07-08 12:56) [15]

Есть решение!!!


> Скорее всего это просто особенность сервера, а не права
> на файл.

Точно так..

Наконец-то нашел.. Облазил весь Интернет..
А нашел-то в старых FAQ-ах :-) http://www.ibase.ru/v6/ib6faq.htm#threads

Выдержка оттуда:
"...существует еще одно требование - коннект к БД не должен быть локальным. При локальном коннекте (c:\dir\data.gdb, это часто используют при размещении приложений на сервере БД - web, midas и т.п.) невозможно подключение из сервисов (например IIS, Baikonur и т.п.)
...
Поэтому коннект к БД у таких приложений должен быть localhost:c:\dir\data.gdb ..."


P.S. 2 Anatoly Podgoretsky (не в обиду)
Я не поддерживаю Ваш стиль давать ответы путем наводок на ответ, тем более когда не знаете точно в чем ответ. Посмотрите в скольких случаях это помогло..



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

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

Наверх




Память: 0.5 MB
Время: 0.046 c
1-1090401135
glGLU
2004-07-21 13:12
2004.08.01
invalid pointer operation


14-1089830378
GeX
2004-07-14 22:39
2004.08.01
DLL with ASM + Delphi


4-1087542808
ilnarab
2004-06-18 11:13
2004.08.01
Параметры FindFirstFile


3-1089279204
Sir John
2004-07-08 13:33
2004.08.01
конфигурация ODBC


9-1082796215
Комбинатор
2004-04-24 12:43
2004.08.01
Проблема с туманом...