• Get application security done the right way! Detect, Protect, Monitor, Accelerate, and more…
  • Lately, I encountered an issue where IIS kept crashing every minute due to unhandled exceptions. There was nothing much in application logs except event viewer, which says application pool “xyz” terminated unexpectedly.

    This was happening in IIS 6 with .Net 4.

    Are you experiencing similar issue?

    The reason IIS keep crashing caused by unhandled exception is because the default policy for an unhandled exception has changed in the .Net framework 2.0 and later version.

    The behavior of this policy is to end the worker process.

    Possible fixes

    To fix this permanently, a developer must handle all exceptions in the application.

    As a workaround, you can change unhandled exception policy back to legacy (.Net framework 1.x)   

    • Login into problematic IIS server
    • Find which version of .Net you are using
    • Go to below folder
    %WINDIR%Microsoft.NETFramework$.Net_Version
    • Take a backup of Aspnet.config file
    • Modify or add if doesn’t exist following
    <configuration>
    <runtime>         
    <legacyUnhandledExceptionPolicy enabled="true" />     
    </runtime> 
    </configuration>
    • Restart IIS Application pool

    You will notice, IIS will prevent crashing, and you are back in business.

    If you want to be master in IIS administration, then check out this course by Hassan Aboul Hassan.