.net - studio - PID del grupo de aplicaciones IIS
para habilitar la depuraciĆ³n de aplicaciones asp net es necesario (9)
¿Alguien está familiarizado con una forma de obtener el grupo de aplicaciones que está asociado con un ID de proceso? Estoy usando Win32_Process para consultar los servicios de W3WP y devolver el PID ahora estoy tratando de obtener el grupo de aplicaciones asociado a él.
Abra el Administrador de IIS (Ejecutar> Inetmgr), seleccione el nivel de raíz desde el árbol de navegación del sitio izquierdo y desde "Panel de Vistas de funciones" seleccione "Procesos de trabajo"
Haga clic en "Procesos de trabajo" para obtener detalles de todos los procesos de trabajo que se están ejecutando actualmente
De esta lista obtendrá el nombre del grupo de aplicaciones, identificación del proceso
Acabo de descubrir que también puede encontrar esto en la interfaz de usuario de IIS 7. Seleccione su nodo de servidor web y abra "Procesos de trabajo". Esto mostrará el nombre de cada grupo de aplicaciones junto con su ID de proceso y detalles de utilización.
En Windows Server 2008 esto ha cambiado.
en systemroot / system32 / inetsrv encuentra appcmd.exe
utilizando
appcmd list wp
obtienes una lista de todos los procesos de trabajo y de la aplicación a la que sirven.
Esto debería hacerlo.
public string getAppPoolName(int pid)
{
ServerManager serverManager = new ServerManager();
ApplicationPoolCollection apc = serverManager.ApplicationPools;
foreach (var app in apc)
{
var workers = app.WorkerProcesses;
foreach (var w in workers)
{
if (w.ProcessId == pid)
{
return app.Name;
}
}
}
return string.Empty;
}
PID of y Application Pool dando su nombre:
$AppPoolName = ''AppPoolForSite1''
(Get-ItemProperty IIS:/AppPools/$AppPoolName -Name WorkerProcesses).Collection.processId
Puede usar el administrador de tareas para ver el nombre de usuario bajo el cual se ejecuta el proceso (que en general es lo mismo que el nombre del grupo de aplicaciones) y el ID del proceso, pero debe activar estas columnas en el administrador de tareas, y también asume el El nombre de usuario con el que se ejecuta el proceso es el mismo que el nombre del grupo de aplicaciones (que, por lo que sé, es el predeterminado, a menos que uno esté usando Sharepoint y similares).
También tenga en cuenta que todos los métodos enumerados en esta página solo pueden mostrar los procesos que se están ejecutando actualmente, lo que significa que si su proceso particular se ha cerrado debido al tiempo de inactividad, primero debe usar el sitio para poner el proceso en la lista , y en su caso, significa que primero debe acceder a todos los sitios para asegurarse de que el proceso asociado con ellos se está ejecutando.
Si está ejecutando en Windows Server 2008 y SOLAMENTE quiere el PID, para alimentar a otro script o comando, puede usar esto:
c:/windows/system32/inetsrv/appcmd list wps /apppool.name:"My Application Pool" /text:WP.NAME
Por ejemplo, para crear un script por lotes que crea un volcado de memoria de un grupo de aplicaciones particular, use esto:
c:/windows/system32/inetsrv/appcmd list wps /apppool.name:"My Application Pool" /text:WP.NAME > "%temp%/pid.txt"
for /F %%a in (%temp%/pid.txt) do c:/debugger/adplus.exe -hang -o d:/dumps -p %%a
pause
Si solo está utilizando la línea de comando para resolverlo ad-hoc, puede hacer esto también:
El script ya está ubicado en systemroot / system32 en Windows Server 2003, así que simplemente vaya a su símbolo del sistema y escriba iisapp.vbs (el .vbs es opcional) y tendrá una lista instantánea de toda la información del conjunto de aplicaciones que tenga siempre quise saber Es posible que necesite escribir cscript iisapp.vbs si CScript no es su host de script WSH predeterminado.
Veamos un ejemplo de la salida:
W3WP.exe PID: 1468 AppPoolId: AppPoolForSite1.com
W3WP.exe PID: 3056 AppPoolId: AppPoolForSite2.com
W3WP.exe PID: 1316 AppPoolId: AppPoolForSite3.com
Directamente de la boca del caballo, Microsoft documenta this .
ServerManager serverManager = new ServerManager();
ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;
Trate de trabajar con esto y debe obtener lo que necesita.