:: Не фоксом единым
Re: xp_cmdshell (вернуть 1)
abil

Сообщений: 247
Откуда: Красноярск
Дата регистрации: 01.12.2003
Цитата:
А что означает, что процессу SQL-сервера должны быть доступны рантаймы? Процесс prodok.exe ведь стартует как таковой.
я немного неверно выразился, рантайм библиотеки должны быть доступны учетной записи под которой работает процесс MS SQL сервера, например через пути в профиле этой учетной записи. prodok.exe стартанет и будет висеть, попытаясь вывести на экран сообшение о недоступности библиотек VFP.
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
PaulWist
Автор

Сообщений: 14618
Дата регистрации: 01.04.2004
Atlant
PaulWist
Ну дык, тогда скажи какое сообщение в окне фокса вываливается.
Не имея сообщения об ощибке приходится тыкать пальцем в небо.
Никакой, в том-то и дело. Просто бесконечное выполнение...

Это не бесконечное выполнение, это юзеровский диалог висит и не пускает прогу дальше.

У фокса всегда есть окно, поэтому надо считать или визуализировать окно, что бы посмотреть, что там не так.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
PaulWist
Автор

Сообщений: 14618
Дата регистрации: 01.04.2004
Ну собственно, продулай эксперимент.

1. Запусти exe от имени сервера (exe-шник повиснет)

2. Найди свой запущенный процесс (как найти здесь forum.foxclub.ru)


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
Atlant

Сообщений: 204
Откуда: Новосибирск
Дата регистрации: 01.09.2005
abil
я немного неверно выразился, рантайм библиотеки должны быть доступны учетной записи под которой работает процесс MS SQL сервера, например через пути в профиле этой учетной записи. prodok.exe стартанет и будет висеть, попытаясь вывести на экран сообшение о недоступности библиотек VFP.
Я уже сделал, чтобы процесс сервера и моего приложения стартовали из-под моей учетки.
Ну собственно, продулай эксперимент.
1. Запусти exe от имени сервера (exe-шник повиснет)
2. Найди свой запущенный процесс (как найти здесь forum.foxclub.ru)
Не получается найти окно. Ибо у него нет заголовка окна...
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
PaulWist
Автор

Сообщений: 14618
Дата регистрации: 01.04.2004
Хорошо, а какую-нибудь консольную прогу запустить от имени сервера получается типа rar.exe


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Поставь ProcessExplorer (сейчас он с сайта МС доступен), и когда процесс "висит" посмотри какие dll-ки подгружены в его адресное пространство... В принципе эта информация доступна и через плагин ФАРа Process List. Проверь, есть ли среди них dll-ки рантайма (vfpXr.dll, vfpXrenu.dll, где X версия фокса).
Кстати, насчёт конфига - он вкомпилирован в exe или просто "лежит рядом"? Лучше если вкомпилирован...
P.S. Я в принципе рисовал "невизуальную" прогу - она и сейчас на серваке под nncron-ом крутится (ессно что без десктопа) - когда-то даже пробовал через srvany её запускать - работало кое как, но мне не понравилось. Т.е. технологических препятствий быть не должно - что-то в настройках видимо мешает. Попробуй просто dll-ки рантайма на сервере положить в папку проги. Если не поможет, то вычисти из реестра инфу о их регистрации и зарегистрируй повторно руками (это помогает в случае кривых прав на ветки реестра).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
PaulWist
Автор

Сообщений: 14618
Дата регистрации: 01.04.2004
Igor Korolyov
P.S. Я в принципе рисовал "невизуальную" прогу - она и сейчас на серваке под nncron-ом крутится (ессно что без десктопа).

Игорь, я чЁ то не понял как прога под NT-ядром может работавть без десктопа, а тем более прога запущенная от имени какого-то юзера (возможно ты говоришь про отсутствие UI)


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Естественно что в программе нету UI, там принудительно включена генерация исключений если вдруг проге захочется чего-нить "показать", отключена реакция на логофф (дабы процесс не прерывался если юзер выходит из системы)... Ну т.е. то что обеспечивается SYS(2335, 0) и SYS(2340, 1)

И программа работает на W2K3 сервере (запускается через nncron под правами локального админа, плюс ещё мапит сетевую шару под правами доменного юзера) - БЕЗ наличия на нём залогиненного "оператора". Т.е. самой проге недоступен "десктоп" (его просто нету, т.к. нету залогиненного пользователя в системе - в этом режиме есть лишь логин-десктоп, а он, конечно же, недоступен проге).

Тут есть некоторый нюанс - как не мучай фокс, а он всё одно будет создавать exe с "меткой" подсистемы GUI - добиться генерации "истинно консольного" приложения CUI невозможно - хотя сомнительно чтобы скл-сервер это проверял, но всё-же... Если дело в этом, то видимо единственный вариант - оформлять код в dll, а уж её дергать из написанного на C или том-же C# "истинно консольного" приложения.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
PaulWist
Автор

Сообщений: 14618
Дата регистрации: 01.04.2004
Игорь, ты кстати проверял это ф-ии SYS(2335, 0) и SYS(2340, 1) работают для просто exe?

Igor Korolyov
И программа работает на W2K3 сервере (запускается через nncron под правами локального админа, плюс ещё мапит сетевую шару под правами доменного юзера) - БЕЗ наличия на нём залогиненного "оператора". Т.е. самой проге недоступен "десктоп" (его просто нету, т.к. нету залогиненного пользователя в системе - в этом режиме есть лишь логин-десктоп, а он, конечно же, недоступен проге).

Не знаю как nncron, а для сервиса MSSQL Agent рабочий стол создаётся даже если нет залогиненного юзера, здесь forum.foxclub.ru мои потуги найти десктоп фоксовского exe запущенного агентом сервера.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
abil

Сообщений: 247
Откуда: Красноярск
Дата регистрации: 01.12.2003
Я сечас проверил, как все работает. На 2005 не так, как я написал.
В свойствах sql server на закладке безопасность нужно
включить серверную учетную запись-посредник ,
указать её логин и пароль , с правами, в контексте этой учетной записи
на сервере будут запускаться программы через xp_cmdshell.

Затем нужно разрешить работу xp_cmdshell c помощью sp_configure
sql скрипт:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'xp_cmdshell', 1;
GO
RECONFIGURE;
GO

на сервер в положил содержимое приложенного проекта
там prg:
STRTOFILE("HeloWord!" , "c:\prodok\HeloWord.txt")
quit

скрипт
exec xp_cmdshell 'c:\prodok\prodok.exe'
успешно создал c:\prodok\HeloWord.txt

в процессах ничего не висит.



Исправлено 1 раз(а). Последнее : abil, 08.06.09 14:28
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
PaulWist
Автор

Сообщений: 14618
Дата регистрации: 01.04.2004
Ну вот, всё дело оказалось в правах


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: xp_cmdshell (вернуть 1)
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
PaulWist
Игорь, ты кстати проверял это ф-ии SYS(2335, 0) и SYS(2340, 1) работают для просто exe?
Работают. В хелпе не указан IMHO весьма важный момент - READ EVENTS трактуется системой как "модальное состояние", и соответственно после SYS(2335, 0) эта команда генерирует ошибку. Была глупая идея повесить процесс чтоб он по внутреннему таймеру срабатывал. Но в результате "услужливости" фокса сделал значительно проще и надёжнее (особенно в плане обработки ошибок - чтобы сервис не умирал "навсегда") - запуск внешним таймером-планировщиком nncron, а сама программа - просто "однопроходная" обработка


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 12 (Гостей: 12)

© 2000-2024 Fox Club 
Яндекс.Метрика