Share via


Event ID 2304 — IIS Worker Process Availability

Applies To: Windows Server 2008 R2

Internet Information Services (IIS) worker processes serve an application pool and can be in a starting, running, stopping, or unknown state. In IIS 7.0 and IIS 7.5, worker processes are managed by WAS (the Windows Process Activation Service). If a worker process fails to respond, it may be recycled by WAS.

Event Details

Product: Internet Information Services
ID: 2304
Source: Microsoft-Windows-IIS-W3SVC-WP
Version: 7.5
Symbolic Name: W3_EVENT_CLR_LOADER_LOAD_ERROR
Message: There was an unexpected error during the loading of managed runtime version '%1'. The managed runtime loader '%2' was unable to load the managed runtime. The data is the error.

Diagnose

DIAGNOSER - ERROR

Resolve

Restore bypass traverse checking rights

To resolve this issue, you must first restore the bypass traverse checking rights, and then restart the W3SVC and HTTP services.

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

Restore bypass traverse checking rights

To restore bypass traverse checking rights by using the Group Policy Management Console:

  1. Click Start, click Run, type gpedit.msc, and then click OK.

  2. Expand Computer Configuration, Windows Settings, and Security Settings.

  3. Expand Local Policies, and then select User Rights Assignment.

  4. In the right pane under the Policy column, right-click Bypass traverse checking and click Properties.

  5. Click Add User or Group.

  6. Type Everyone;Users, and then click OK.

    Note:  If you receive a message that an object named "Users" cannot be found, click Object Types, click to select the Groups check box, and then click OK two times.

    Note:  If you do not want to give the Everyone group and the Users group the Bypass Traverse Checking user right, you may be able to resolve this issue if you give the IIS_IUSRS group the Bypass Traverse Checking user right. To do this, replace "Everyone;Users" above with "IIS_IUSRS".

Restart the W3SVC and HTTP services

To restart the W3SVC and HTTP services by using the net command:

  1. Open an elevated Command Prompt window. Click Start, point to All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
  2. Type net stop w3svc.
  3. Type net stop http.
  4. Type net start w3svc.
  5. Type net start http.

Check managed runtime version

Each application pool has a managedRuntimeVersion attribute that contains the version of the common language runtime (CLR) that the application pool preloads. If the value in the attribute does not match the installed runtime, the worker process may fail to load.

To resolve this issue, check the value of the managedRuntimeVersion attribute for the application pool by performing the following steps.

To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To change the application pool managedRuntimeVersion attribute:

  1. Click Start, click Control Panel, and then click Administrative Tools.
  2. Right-click Internet Information Services (IIS) Manager and select Run as administrator.
  3. In the Connections pane, expand the computer node, then select the Application Pools folder underneath the computer name.
  4. In Features View, select the application pool that you want to configure. In the Actions pane, select Advanced Settings.
  5. Under General, verify the value for .NET Framework Version. The default is v2.0.
  6. Edit the version number to match the installed version reported in the event log message, then click OK.
  7. After the managedRuntimeVersion attribute has been changed, IIS will recycle the application pool and load the newly specified framework version for the application pool.

Correct module DLL load failure

If a module DLL fails to load, possible resolutions include the following:

  • If the module is third-party, contact the module vendor. The vendor should have more specific knowledge about the module's features and behavior.
  • If the module failed to load because of a processor mismatch, see Knowledge Base article 894435.
  • Check the event log message for a specific error number that may provide more information. This error number will be different from the Event ID. To do this, perform the following steps.

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

Check for a specific error number

To check for a specific error number:

  1. In the Event Viewer, select the event that you received.
  2. Click the Details tab, then Friendly View.
  3. If a specific error number is available, the words Binary data should appear.
  4. Below In Words, note the number after the colon.

Find out more about a specific error number

To learn more about a specific error number:

  1. Download the Err.exe utility from the Microsoft Exchange Server Error Code Look-up page.
  2. Open an elevated Command Prompt window. Click Start, point to All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
  3. At the command prompt, navigate to the directory where you downloaded Err.exe. For example, if you downloaded Err.exe to C:\Err, type cd C:\Err.
  4. Type err errornumber to obtain more information about the error. For example, if the specific error number is 80070005, type err 80070005.
  5. In the example in Step 4, the error resolves to ERROR_ACCESS_DENIED, so your next step would be to check permissions on the module.

Check worker process initialization failure

If a worker process fails to initialize, check the event log message for a specific error number included in the message. This error number will be different from the Event ID. To do this, see the following steps.

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

Check for a specific error number

To check for a specific error number:

  1. In the Event Viewer, select the event that you received.
  2. Click the Details tab, then Friendly View.
  3. If a specific error number is available, the words Binary data: should appear.
  4. Below In Words, note the number after the colon.

Find out more about a specific error number

To learn more about a specific error number:

  1. Download the Err.exe utility from the Microsoft Exchange Server Error Code Look-up page.
  2. Open an elevated Command Prompt window. Click Start, point to All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
  3. At the command prompt, navigate to the directory where you downloaded Err.exe. For example, if you downloaded Err.exe to C:\Err, type cd C:\Err.
  4. Type err errornumber to obtain more information about the error. For example, if the specific error number is 80070005, type err 80070005.
  5. In the example in Step 4, the error resolves to ERROR_ACCESS_DENIED, so your next step would be to check permissions related to the worker process.

Verify

You can use a browser client and IIS Manager to verify that an application pool worker process has started.

Note:  An IIS worker process does not exist until a request is made to the application pool for the Web application. For this reason, you may have to test browse the Web application before you can verify that a worker process is functional.

Test browse the application

To test browse the application:

  1. Open up your default browser or required client.
  2. Browse to the Web site or application whose worker process you want to test. The client should display the expected output page.

Verify that an application pool worker process is running

To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To verify that an application pool worker process is running:

  1. Click Start, click Control Panel, and then click Administrative Tools.
  2. Right-click Internet Information Services (IIS) Manager and select Run as administrator.
  3. In the Connections pane, select the computer name.
  4. In Features View, under the Feature Name column heading, double-click the Worker Processes management feature. A list of currently active application pools and worker processes will appear.
  5. The State column for the worker process will indicate Running if the worker process is running.
  6. You can also view currently executing requests by right-clicking the application pool name or worker process id and selecting View Current Requests.

IIS Worker Process Availability

Internet Information Services (IIS) 7.5