Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];

Вниз

CreateProcess   Найти похожие ветки 

 
Hill1   (2002-12-02 17:44) [0]

Здравствуйте, господа!

Я написал сервис (службу) под Windows 2000 Server. В этой программе есть код, который
запускает внешнюю программу через CreateProcess. Сервис (служба) работает под
учётной записью Administrator (а не под LocalSystem). Программа хорошо работает.
Этот сервис расположен на сервере, на котором стоит IIS5 + ASP (наш сайт). На этом
сайте есть ASP-страницы, которые обращаются к базе данных через ODBC-драйвер.
Как только издалека гостю достаточно вызвать ASP-страницу в тот момент, когда
сервис уже запустил внешнюю программу, то сайт виснет. И выдаётся ошибка: "Сбой SQLAllocHandle драйвера в SQL_HANDLE_ENV/offices.asp" .
Смотрим диспетчер процессов, там всего два файла DLLHOST.exe, причём второй так хорошо
вырос до больших разморов.
Вся причина НАВЕРНО видимо в контексте безопасности, в которой выполняется внешняя программа
через CreateProcess и сам сайт.
На свете есть функции CreateProcessAsUser, CreateProcessWithLogon. Я так не могу врубиться, зачем
эти функции нужны? Нужны, чтобы выполнять программы в определённом контексте безопасности.
У меня и так работает внешняя без каких-то функций. Достаточно указал следующее

ZeroMemory(@SI, sizeof(SI));
with SI do
begin
cb:=SizeOf(SI);
dwFlags:=STARTF_USESHOWWINDOW;
lpTitle := nil;
wShowWindow := SW_HIDE;
lpDesktop:=PChar("winsta0\default");
end;

ZeroMemory(@PI, sizeof(PI));

CreateProcess(nil, ExchProtocExecuteFilePath, nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, SI, PI)
CloseHandle(PI.hThread);

WaitForSingleObject(PI.hProcess, INFINITE);

CloseHandle(PI.hProcess);

==================================================================

Может быть Вы мне что-нибудь посоветуете? Может быть мне поставить высокий приоритет для процесса?

Кто знает как избавиться от взаимодействия внешней программы с ASP-страницами? Моя программа
же не имеет отношения к этому сайту, а всё таки из-за этого коллизия (конфликт) возникает.

Жду от вас советов и объяснений, какие функции лучше использовать, и как защитить работающую
программу от воздействия других программ или объектов.


 
Мазут Береговой   (2002-12-03 02:17) [1]

Может попробовать запускать твой сторонний процесс в отдельной thread в сервисе? Хотя не уверен.


 
kaif   (2002-12-03 02:27) [2]

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



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

Форум: "Потрепаться";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
1-74699
MegaVolt
2002-12-06 18:29
2002.12.23
Работа со строками и PChar


14-74972
Дмитрий К.К.
2002-12-03 06:18
2002.12.23
Регистрация домена com


1-74777
Zorro
2002-12-11 11:09
2002.12.23
Win.ini - СРОЧНО!!


3-74560
Ozone
2002-12-02 13:21
2002.12.23
SQL - перехват ошибок


8-74847
racheengel
2002-08-22 15:00
2002.12.23
Визуальный графический редактор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский