Проблема с сервисом !!!
От: andywolf  
Дата: 10.10.05 13:04
Оценка:
Здравствуйте. Прошу помощи!!!
Пишу приложения, которое должно являться сервисом NT.
Приложение создано как написано в статье:
http://www.rsdn.ru/article/baseserv/services_details.xml
Автор(ы): Сергей Холодилов
Дата: 22.06.2003
В статье описаны некоторые детали программирования служб Windows NT/2000/XP. Большая часть содержащихся в статье утверждений описывает реакцию Windows на какие-то действия службы. Если вы написали первую службу и хотите двигаться дальше, эта статья вам поможет.

Код представленный в статье чуть изменил (включил поддержку MFC). Все получилось (спасибо автору).
А вот теперь интересное.
Приложение должно подключаться к удаленному SQL серверу (MS SQL Server 2000). Для работы с БД использую давно проверенный и давно отлаженный класс. Если метод соединения с БД запустить просто в консольном приложении все ОК — коннект с базой есть, а вот если этод метод запускается
в сервисе получаю:
Data source name not found and no default driver specified
В чем дело, где грабли?????
PS:
Класс для работы с БД основан на ОДБС

11.10.05 12:31: Перенесено из 'C/C++. Прикладные вопросы'
Re: Проблема с сервисом !!!
От: Батончик Украина  
Дата: 10.10.05 13:21
Оценка:
Здравствуйте, andywolf, Вы писали:

A>Здравствуйте. Прошу помощи!!!

A>Пишу приложения, которое должно являться сервисом NT.
A>Приложение создано как написано в статье:
A>http://www.rsdn.ru/article/baseserv/services_details.xml
Автор(ы): Сергей Холодилов
Дата: 22.06.2003
В статье описаны некоторые детали программирования служб Windows NT/2000/XP. Большая часть содержащихся в статье утверждений описывает реакцию Windows на какие-то действия службы. Если вы написали первую службу и хотите двигаться дальше, эта статья вам поможет.

A>Код представленный в статье чуть изменил (включил поддержку MFC). Все получилось (спасибо автору).
A>А вот теперь интересное.
A>Приложение должно подключаться к удаленному SQL серверу (MS SQL Server 2000). Для работы с БД использую давно проверенный и давно отлаженный класс. Если метод соединения с БД запустить просто в консольном приложении все ОК — коннект с базой есть, а вот если этод метод запускается
A>в сервисе получаю:
A>Data source name not found and no default driver specified
A>В чем дело, где грабли?????
A>PS:
A>Класс для работы с БД основан на ОДБС

Скорее всего дело в том что сервис работает не под учётной записью пользователя ( обычно ) а под системной.
Потому для него могут быть невидны некоторые вещи.
( Скажем пользователь монтирует сетевой диск, но с учётной записи системной этого "замапленного" диска видно не будет )
Re[2]: Проблема с сервисом !!!
От: Аноним  
Дата: 10.10.05 13:54
Оценка:
Здравствуйте, Батончик, Вы писали:

Б>Скорее всего дело в том что сервис работает не под учётной записью пользователя ( обычно ) а под системной.

Б>Потому для него могут быть невидны некоторые вещи.
Б>( Скажем пользователь монтирует сетевой диск, но с учётной записи системной этого "замапленного" диска видно не будет )

Да, наверное Вы правы: ошибка по которой вылетаю как раз и говорит, что ODBC соединение не создано. Хотя оно есть и было и .... слов нет. Вопрос остался, как быть?
Re[3]: Проблема с сервисом !!!
От: Батончик Украина  
Дата: 10.10.05 14:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Батончик, Вы писали:


Б>>Скорее всего дело в том что сервис работает не под учётной записью пользователя ( обычно ) а под системной.

Б>>Потому для него могут быть невидны некоторые вещи.
Б>>( Скажем пользователь монтирует сетевой диск, но с учётной записи системной этого "замапленного" диска видно не будет )

А>Да, наверное Вы правы: ошибка по которой вылетаю как раз и говорит, что ODBC соединение не создано. Хотя оно есть и было и .... слов нет. Вопрос остался, как быть?


Сказать честно — именно с єтим не сталкивался...
Но первая мысль : см. в настройке DSN закладку "System DSN". Внизу текст на подобие этого:

An ODBC System data sources stores information about how to connect to the indicated data provider. A System data source is visible to all users on this machine, including NT services

Re[3]: Проблема с сервисом !!!
От: Аноним  
Дата: 11.10.05 05:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Батончик, Вы писали:


Б>>Скорее всего дело в том что сервис работает не под учётной записью пользователя ( обычно ) а под системной.

Б>>Потому для него могут быть невидны некоторые вещи.
Б>>( Скажем пользователь монтирует сетевой диск, но с учётной записи системной этого "замапленного" диска видно не будет )

А>Да, наверное Вы правы: ошибка по которой вылетаю как раз и говорит, что ODBC соединение не создано. Хотя оно есть и было и .... слов нет. Вопрос остался, как быть?


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