IIS Application Pool crash when dotnet application is accessed.

book

Article ID: 208749

calendar_today

Updated On:

Products

SITEMINDER

Issue/Introduction

When Web Agent is enabled, accessing dot net application crashes the application pool.

Cause

This issue occurred on specific customer's dotnet application and was not reproduced on support lab.
Broarcom SE analyze Information and Microsoft Tecdoc Information are following.
And on these information it is suspected to be the cause from "Enabled preload"

------Buroarcom SE analyze Information------
Engineering team did analyze the dump and they have narrowed it down to "GetServerVariable" call

    msvcrt.dll!memcpy()    Unknown
     filter.dll!W3_FILTER_CONTEXT::GetServerVariable(struct _HTTP_FILTER_CONTEXT *,char *,void *,unsigned long *)    Unknown
>    ISAPI6WebAgent.dll!DoPreprocHeaders(struct _HTTP_FILTER_CONTEXT *,struct _HTTP_FILTER_PREPROC_HEADERS *)    C++
     filter.dll!W3_FILTER_CONTEXT::NotifyFilters(unsigned long,void *,int *)    Unknown
     filter.dll!GlobalDoWork(unsigned long,class IHttpEventProvider *)    Unknown
     iiscore.dll!W3_CONTEXT::SetupStateMachine()    Unknown
     iiscore.dll!W3_CONTEXT_BASE::StartNotificationLoop(class NOTIFICATION_CONTEXT *,int)    Unknown
     iiscore.dll!APPLICATION_PRELOAD_PROVIDER::ExecuteRequest(class IHttpContext *,class IHttpUser *)    Unknown
     warmup.dll!DoApplicationPreload(class IGlobalApplicationPreloadProvider *)    Unknown
     iiscore.dll!W3_SERVER::GlobalNotify()    Unknown
     iiscore.dll!W3_SERVER::NotifyApplicationPreload(int)    Unknown
     iiscore.dll!IISCORE_PROTOCOL_MANAGER::PreloadApplication()    Unknown
     w3wphost.dll!W3WP_HOST::ProcessPreloadApplications(unsigned long)    Unknown
     w3wphost.dll!WP_IPM::AcceptMessage(class IPM_MESSAGE const *)    Unknown
     iisutil.dll!IPM_MESSAGE_PIPE::MessagePipeCompletion(void *,unsigned char)    Unknown
     ntdll.dll!RtlpTpWaitCallback()    Unknown
     ntdll.dll!TppExecuteWaitCallback()    Unknown
     ntdll.dll!TppWorkerThread()    Unknown
     kernel32.dll!BaseThreadInitThunk()    Unknown
     ntdll.dll!RtlUserThreadStart()    Unknown


------Microsoft Tecdoc Information------
About the problem that occurs when getting the server variable in the HTTP Module when the Application Initialization function is enabled
https://social.msdn.microsoft.com/Forums/ja-JP/eedce306-7b33-4f91-80aa-fd48f4bcd17e/application-initialization-27231330212637721177212702617812395-http-module?forum=iissupportteamja
(This document is written by Japanese, please translate this by Google)
Symptoms
When I visit a page hosted on IIS, the browser stops responding or I get a 503 Service Unavailable error.

In addition, the following log is repeatedly recorded in the event log on the IIS server.

0615

conditions
This event occurs when all of the following conditions are met.

Enable Application Initialization, which is a standard feature of Windows Server 2012, from Role Services
"Enabled preload" is True in the advanced settings of the website or application
Install an ISAPI module in IIS that references the "UNENCODED_URL" server variable during the process
Cause
The virtual request made by ApplicationInitialization is set with the minimum information required to complete the initialization process. However, there is not enough information to get UNENCODED_URL, which leads to abnormal termination of the worker process.

    DWORD WINAPI HttpExtensionProc (LPEXTENSION_CONTROL_BLOCK pecb)
    {
        ....
        pecb-> GetServerVariable (hConn, "PRELOAD_REQUEST", lpvBuffer, lpdwSizeofBuffer);
        ....
In an environment where rapid fail protection is enabled (default enabled), a 503 Service Unavailable error occurs as a result of repeated abnormal terminations in a short period of time and the application pool being disabled (normally, 503 Service Unavailable is displayed on the browser). .. Also, in an environment where rapid fail protection is disabled, worker processes will repeatedly crash on the IIS server until the browser disconnects.

Environment

IIS 10 (Windows Server 2016, Japanese OS)
dotnet application deployed on IIS
Web Agent R12.52 SP1 CR10
[Siteminder IIS 6.0 Filter initialized in ISAPI Extension mode.]
[Siteminder IIS 10.0 module initialized in IIS 10 Native module.]

Resolution

As work around if you see similar issue in your environment, please try to configure "Enabled preload" as "FALSE" in IIS.
and verify your issue is away or not.