目前三个开发人员共享一个 IIS 盒子进行测试。由于第三方工具和其他限制,我们无法在本地运行项目,因此远程调试是唯一的选择。我们当前的流程是远程连接到网络服务器,运行 iisapp.vps 以获取我们各个站点的 PID,然后在 VS2008 中运行远程调试以连接到该 pid。
我已经找到了自动连接到 w3wp 的脚本,如果它是唯一运行的脚本,但是我还没有找到一种方法可以远程找到脚本中的 w3wp PID 并使用它来附加。
目前三个开发人员共享一个 IIS 盒子进行测试。由于第三方工具和其他限制,我们无法在本地运行项目,因此远程调试是唯一的选择。我们当前的流程是远程连接到网络服务器,运行 iisapp.vps 以获取我们各个站点的 PID,然后在 VS2008 中运行远程调试以连接到该 pid。
我已经找到了自动连接到 w3wp 的脚本,如果它是唯一运行的脚本,但是我还没有找到一种方法可以远程找到脚本中的 w3wp PID 并使用它来附加。
大多数使用 IIS 的脚本都假定您在本地计算机上运行。如果您查看脚本代码,它很可能使用 WMI 与 IIS 一起工作,并且它必须做的第一件事是连接到 WMI 提供程序,该提供程序始终需要机器名称和 WMI 提供程序路径。本地机器的机器名称通常表示为“.”。需要的地方。
例如:
strComputer =“。” 设置 objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") 设置 colProcesses = objWMIService.ExecQuery(_ "select * from win32_process Where Name = 'w3wp.exe'") 对于 colProcesses 中的每个 objProcess WScript.Echo objProcess.ProcessId
如果您将 strComputer 更改为指向 IIS 服务器,您将获得查询时运行的所有 w3wp 进程的 PID。
注意:上面的代码是一个脚本的片段,不是一个完整的程序。