An application that keeps becoming unavailable is a sign of a problem with its application pool. For an issue I troubleshot, the application pool kept stopping with Event ID 2269, 5139, and 5002.
The errors and warnings I saw in Event Viewer are below.
Event 2269
The worker process for app pool 'DefaultAppPool' failed to initialize the http.sys communication when asked to start processing http requests and therefore will be considered ill by W3SVC and terminated.
Event 5139
A listener channel for protocol 'http' in worker process serving application pool 'DefaultAppPool' reported a listener channel failure.
Event 5002
Application pool 'DefaultAppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool
Solution for “Event 2269 http.sys communication” error
This issue occurs when the application pool identity doesn’t have “Bypass traverse checking” permission. This is group-policy level permission that determines which users can traverse folders even if they don’t have permission at the folder level.
Follow the steps below to give “Bypass traverse checking” permission:
- In “Start > Run”, type “gpedit.msc” and click OK
- Go to “Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment”
- In the list, right click “Bypass traverse checking” and click “Properties”
- Click “Add User or Group”
- Add these users and groups (You will need to select “Groups” from Object Types for some of them): Everyone, Users, IIS_IUSRS, IIS AppPool\DefaultAppPool
- Click OK
- Restart the server
- Open the same window and make sure the users/groups you added in Step 5 are still there
- Test the application. If this doesn’t work, check “netstat” list for possible port conflicts and other network and file structure related issues
Note: We added more users than we normally do. This is for testing to see if it works. You can later harden this configuration.