Configuring Pinging in IIS 7.0 / 7.5 to avoid terminating processes while debugging from Visual Studio

IIS monitors the worker processes health by sending a periodic request the worker processes. This pinging is to ensure that if the worker processes responding the incoming requests in timely manner. If the worker process does not respond in a timely manner, IIS terminates the process after a specific number of ping.  Now, consider you are debugging your web application by attaching w3wp.exe from Visual Studio.  During debugging, it might take a long to find out result of debugging and as an out come, execution is on hold as you are pausing around with some breakpoints or playing around the code.

In between your debugging, IIS sending a ping to check worker process health and found it’s not responding, as you are holding the execution around breakpoint or other operation with in visual studio. Resulting of that, IIS terminates the process and you will get error message “The web server process that was being debugged has been terminated by Internet Information Services” .

image

Now think about it,  you are middle of a debugging session and the worker process process terminates. This will stop your entire debugging. This is quite frustrating and irritating when you are in a middle of debugging and debugger terminates because of the worker process.

Here is the solution:

Open the application pool from IIS Manager and navigate to “Advanced Settings” from the context menu of selected application pool.

image

This will open “Advanced settings” dialog window. Move to “Process Model” section

image

By default, you will find,

 Ping Enabled = True with Ping Maximum Response Time = 90s and Ping Period = 30s

If worker process responding with in the specified time frame, IIS will keep the worker process alive. But considering the debugging time, the maximum response time is very less.

What you can do over here is, increase the Ping Maximum Response Time  with some values which can ensure worker process will get a response in between health check.

Or, Disable the Pinging by Ping Enabled = False  . By this setting IIS will stop pining your worker process for health checkup.

Note :  This is recommended only for your development environmentDon’t disable it on Test, staging or Production environments. Worker process health monitoring, terminating processes when there is no timely request are very crucial for application performance.

 

Happy Debugging !

 

Check this out if you need some more information on IIS IIS Articles Archives

Hope this helps !

Cheers !

Abhijit

Abhijit Jana

Abhijit runs the Daily .NET Tips. He started this site with a vision to have a single knowledge base of .NET tips and tricks and share post that can quickly help any developers . He is a Former Microsoft ASP.NET MVP, CodeProject MVP, Mentor, Speaker, Author, Technology Evangelist and presently working as a .NET Consultant. He blogs at http://abhijitjana.net , you can follow him @AbhijitJana . He is the author of book Kinect for Windows SDK Programming Guide.

2 Comments to “Configuring Pinging in IIS 7.0 / 7.5 to avoid terminating processes while debugging from Visual Studio”

Comments are closed.