How do I see currently executing web request on IIS 8

試著忘記壹切 提交于 2019-11-28 17:49:05
BillRob

There wasn't any UI hints, but was able to turn it on as a feature under server manager.

Server Manager -> Add Roles.

  • Web Server (IIS)
    • Web Server
      • Health and Diagnostics
        • Request Monitor

The required features can be installed with PowerShell.

IIS Manager:

Install-WindowsFeature Web-Mgmt-Tools

Request Monitor:

Install-WindowsFeature Web-Request-Monitor

With these features installed, run IIS Manager, browsing to the Worker Processes section shown in the screenshot below. From the list of Worker Processes, either double click on the process of interest to view currently executing requests or use the right-click context menu.

The back/forward arrows to the left of the address bar can be used to navigate back and forth between the list of requests and worker processes. The alt+left arrow / alt+right arrow keys perform the same actions.

This show's the steps to install it. From https://portal.ektron.com/KB/10396/:

To run it after it's installed you will need to find the "Worker Process" icon on the server settings in IIS Manager.

Another good option with ASP.net is to go to task manager, right click on the process and select "Create Dump File" then download and double click on the created .dmp file to load it into Visual Studios debugger. Then look thru the threads and their call stacks to see where all the requests are being executed. This method allows you to see exactly what the requests are doing (infinite loops, deadlocks, etc.)

I had to do this from an elevated command line

%windir%\system32\inetsrv\appcmd list requests 

If you want to see requests exceeding more than 5 seconds

%windir%\system32\inetsrv\appcmd list requests /elapsed:5000

In a loop (assuming you are in %windir%\system32\inetsrv\

for /l %x in (,,) do (appcmd list requests /elapsed:5000 & timeout 2)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!