> > IComAdminCatalog2::GetRunningApps (...);
> > // znaia app name dlia kotoroi ty hochesh poluchit`
> info,
> > eto imia ty mozhesh poluchit` raznymi sposobami:
> naprimer
> > znaia file name ispolzuesh
> > ICOMAdminCatalog::QueryApplicationFile(...). ili
> > //ICOMAdminCatalog::Connect(...) i poluchaesh
> > ICatalogCollection . i.t.d
> > //poluchaesh collection of IRunningAppInfo;
> > //i usee.
>
> Этот метод я пробовал, но проблема в том, что он не
> работает в Win2000 (там не поддерживается интерфейс
> IComAdminCatalog2 и нет такого Collection)
>
> а насчет IRunningAppInfo, где найти его описание (у меня в
> августовском Platform SDK вообще нет упоминания о таком
> интерфейсе)
>
> >
---
> > voobchem ne ponimau v chem problema esli ty ispolzuesh > COM+ > > !!! ( pervonachalniy vopros byl kak eto delat` na NT > > kotoraia ne imeet COM+) > > COM+ - это одно из найденных мной решений проблемы > Вопрос в том, есть ли альтернативные решения проблемы: как > связать имя виртуального сервера IIS с PID запущенного им > процесса
Есть : Пишется консоль для удаленного управления IIS
Необходимо получить список Out-Process Applications и для каждого из них получить детальную информацию
Я могу получить через ADSI получить список Applications (через COMAdmin.COMAdminCatalog и Applications Collection),после этого мне необходимо получить PID процесса.
Под WinXP это можно сделать через ApplicationInstances Collection, а в Win2000 данный Collection не поддерживается :(
Есть ли альтернативные COMAdminCatalog способы (я смотрел WMI, но не нашел ничего подходящего) ? Может кто-нибудь решал подобную задачу ?
(у Microsoftа в MMC это давно реализовано еще в WinNT 4.0 (в Component Services))
> Есть : Пишется консоль для удаленного управления IIS > Необходимо получить список Out-Process Applications и для > каждого из них получить детальную информацию > > > Я могу получить через ADSI получить список Applications > (через COMAdmin.COMAdminCatalog и Applications > Collection),после этого мне необходимо получить PID > процесса.
Pri chem zdes COM ?? esli tebe nado PID to Win32 API
> > Под WinXP это можно сделать через ApplicationInstances > Collection, а в Win2000 данный Collection не поддерживается > :( > > > > Есть ли альтернативные COMAdminCatalog способы (я смотрел > WMI, но не нашел ничего подходящего) ? Может кто-нибудь > решал подобную задачу ? > (у Microsoftа в MMC это давно реализовано еще в WinNT 4.0 > (в Component Services))
WinNT4.0 i v pomine net "Component Services" ( eto COM+) eto baida poiavilas` poszhe. A v WinNT est COM i MTS (chto mozhno skazat` tozhe samoe). ytak vot esli tebe nado kovyriat MTS components togda kovyraii MTS estestvenno. chto voobche to ni kokogo otnoshenia k out of proc components ne imeet.
> > > Анатолий > (можно мылом homogenic@mail.ru) >
1. Под IIS все сервера, запущенные как Out-Process, запускаются как отдельные процессы с именем dllhost.exe
2. Виртуальные сервера регистрируются как COM+ Application
Проблема
Мне необходимо связать имя сервера и со связанным с ним процессом
Я пробовал делать это через COM+ Applications, но это работает только в XP
> > > > P.S. vopros tak i ne yasen. > > > Поправьте меня, если я не прав > > 1. Под IIS все сервера, запущенные как Out-Process, > запускаются как отдельные процессы с именем dllhost.exe > 2. Виртуальные сервера регистрируются как COM+ Application > > Проблема > > Мне необходимо связать имя сервера и со связанным с ним > процессом
Aga, togda vse prosto:
pishesh prostoi com object kotoryi vnutri vyzyvaet GetCurrentProcessId(VOID) ili GetCurrentProcess(VOID) i vozvrachaet tebe handle ili id chto hochesh. Zasovyvaesh tvoi Obj v ASP ili ISAPI voobchem na tvoi server chtoby on inicializirovalsi i vyzyvalsia.
Naprimer v ASP:
Application_OnStart() sozdaesh object i vyzyvaesh method a potom hrahish tvoii id/handle as global.
> > Я пробовал делать это через COM+ Applications, но это > работает только в XP
P.S. ne poniatno zachem nuzhno sviazyvat` process s imnem servera???
> Aga, togda vse prosto: > pishesh prostoi com object kotoryi vnutri vyzyvaet > GetCurrentProcessId(VOID) ili GetCurrentProcess(VOID) i > vozvrachaet tebe handle ili id chto hochesh. Zasovyvaesh > tvoi Obj v ASP ili ISAPI voobchem na tvoi server chtoby on > inicializirovalsi i vyzyvalsia. > Naprimer v ASP: > Application_OnStart() sozdaesh object i vyzyvaesh method a > potom hrahish tvoii id/handle as global.
Идею понял, но это не очень универсальное решение (можно использовать только на разработанных мною сайтах)
Хочется :) универсального решения, к тому же у самого Microsofta это как-то просто реализовано (в Component Services этот PID виден у всех запущенных Applications)
Связать имя и PID надо, чтобы получить информацию о памяти, занимаемой сервером, CPU Usage и т.п.
> > > Aga, togda vse prosto: > > pishesh prostoi com object kotoryi vnutri vyzyvaet > > GetCurrentProcessId(VOID) ili GetCurrentProcess(VOID) > i > > vozvrachaet tebe handle ili id chto hochesh. > Zasovyvaesh > > tvoi Obj v ASP ili ISAPI voobchem na tvoi server > chtoby on > > inicializirovalsi i vyzyvalsia. > > Naprimer v ASP: > > Application_OnStart() sozdaesh object i vyzyvaesh > method a > > potom hrahish tvoii id/handle as global. > > > Идею понял, но это не очень универсальное решение (можно > использовать только на разработанных мною сайтах) > Хочется :) универсального решения, к тому же у самого > Microsofta это как-то просто реализовано (в Component > Services этот PID виден у всех запущенных Applications) > > Связать имя и PID надо, чтобы получить информацию о памяти, > занимаемой сервером, CPU Usage и т.п. >
Esli dlia COM+ togda:
IComAdminCatalog2::GetRunningApps (...);
// znaia app name dlia kotoroi ty hochesh poluchit` info, eto imia ty mozhesh poluchit` raznymi sposobami: naprimer znaia file name ispolzuesh ICOMAdminCatalog::QueryApplicationFile(...). ili
//ICOMAdminCatalog::Connect(...) i poluchaesh ICatalogCollection . i.t.d
//poluchaesh collection of IRunningAppInfo;
//i usee.
---
voobchem ne ponimau v chem problema esli ty ispolzuesh COM+ !!! ( pervonachalniy vopros byl kak eto delat` na NT kotoraia ne imeet COM+)
> IComAdminCatalog2::GetRunningApps (...);
> // znaia app name dlia kotoroi ty hochesh poluchit` info,
> eto imia ty mozhesh poluchit` raznymi sposobami: naprimer
> znaia file name ispolzuesh
> ICOMAdminCatalog::QueryApplicationFile(...). ili
> //ICOMAdminCatalog::Connect(...) i poluchaesh
> ICatalogCollection . i.t.d
> //poluchaesh collection of IRunningAppInfo;
> //i usee.
Этот метод я пробовал, но проблема в том, что он не работает в Win2000 (там не поддерживается интерфейс IComAdminCatalog2 и нет такого Collection)
а насчет IRunningAppInfo, где найти его описание (у меня в августовском Platform SDK вообще нет упоминания о таком интерфейсе)
>
---
> voobchem ne ponimau v chem problema esli ty ispolzuesh COM+ > !!! ( pervonachalniy vopros byl kak eto delat` na NT > kotoraia ne imeet COM+)
COM+ - это одно из найденных мной решений проблемы
Вопрос в том, есть ли альтернативные решения проблемы: как связать имя виртуального сервера IIS с PID запущенного им процесса
[Win2000] Poroisia, poroisia v MSDN ( Built on Monday, January 22, 2001 )29.11.01 21:44 Автор: + <Mikhail> Статус: Elderman
> > IComAdminCatalog2::GetRunningApps (...);
> > // znaia app name dlia kotoroi ty hochesh poluchit`
> info,
> > eto imia ty mozhesh poluchit` raznymi sposobami:
> naprimer
> > znaia file name ispolzuesh
> > ICOMAdminCatalog::QueryApplicationFile(...). ili
> > //ICOMAdminCatalog::Connect(...) i poluchaesh
> > ICatalogCollection . i.t.d
> > //poluchaesh collection of IRunningAppInfo;
> > //i usee.
>
> Этот метод я пробовал, но проблема в том, что он не
> работает в Win2000 (там не поддерживается интерфейс
> IComAdminCatalog2 и нет такого Collection)
>
> а насчет IRunningAppInfo, где найти его описание (у меня в
> августовском Platform SDK вообще нет упоминания о таком
> интерфейсе)
>
> >
---
> > voobchem ne ponimau v chem problema esli ty ispolzuesh > COM+ > > !!! ( pervonachalniy vopros byl kak eto delat` na NT > > kotoraia ne imeet COM+) > > COM+ - это одно из найденных мной решений проблемы > Вопрос в том, есть ли альтернативные решения проблемы: как > связать имя виртуального сервера IIS с PID запущенного им > процесса
Nu a esli COM+ net, togda I uzhe otvetil
[Win2000] Poroisia, poroisia v MSDN ( Built on Monday, January 22, 2001 )29.11.01 22:10 Автор: homogenic Статус: Незарегистрированный пользователь
> > Nu a esli COM+ net, togda I uzhe otvetil > > У твоего решения есть недостаток : если виртуальный сервер > "висит" и не отвечает, то решение не работает :(
a ty sozdai free threaded singleton out of proc object i hrani v nem vsu baidu kakuu hochesh i usee budet rabotat`, "kak govorit nash shef"(BP)