Sharepoint Central Admin does not load correctly and top ribbon is grayed


Symptom

Unable to fully load Central Admin on a newly built SharePoint Farm. In this case, the issue only occurs when compression is enabled (which is on by default). After loading Central Admin, the top ribbon in service application section is grayed out.

When this occurs, the only way for Central Admin to function properly was to turn off compression via the following entry in the CA web.config.

Example:

<system.web.extensions>
<scripting>      
scriptResourceHandler enableCompression="false" enableCaching="true" />    
</scripting> 
</system.web.extensions>

When compression was enabled, the page would load and the request to ScriptResource.axd would return a 404, causing the minified javascript to fail.

Event code: 3012
Event message: An error occurred processing a web or script resource request. The requested resource 'ZSystem.Web.Extensions,4.0.0.0,,31bf3856ad364e35|MicrosoftAjax.js|' does not exist or there was a problem loading it.
Event ID: b43e0843d1e546e191e750cd6ecdd7d7 Event sequence: 9 Event occurrence: 1 Event detail code: 0
Application information: 
Application domain: /LM/W3SVC/765117769/ROOT-6-131345076446048178
Trust level: Full
Application Virtual Path: /
Application Path: C:\inetpub\wwwroot\wss\VirtualDirectories\41280\
Machine name: SHAREPOINTSERVER
 
Process information: 
Process ID: 10316
Process name: w3wp.exe
Account name: CONTOSO\spservice
 
Exception information: 
Exception type: ZLibException
Exception message: The underlying compression routine could not be loaded correctly.
 

at System.IO.Compression.DeflaterZLib.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy)
at System.IO.Compression.DeflaterZLib..ctor(CompressionLevel compressionLevel)
at System.IO.Compression.DeflateStream.CreateDeflater(Nullable`1 compressionLevel)
at System.IO.Compression.DeflateStream..ctor(Stream stream, CompressionMode mode, Boolean leaveOpen)
at System.IO.Compression.GZipStream..ctor(Stream stream, CompressionMode mode)
at System.Web.Handlers.ScriptResourceHandler.ProcessRequestInternal(HttpResponseBase response, String decryptedString, VirtualFileReader fileReader)
at System.Web.Handlers.ScriptResourceHandler.ProcessRequest(HttpContextBase context, VirtualFileReader fileReader, Action`2 logAction, Boolean validatePath)
 
The type initializer for 'NativeZLibDLLStub' threw an exception.
at System.IO.Compression.ZLibNative.ZLibStreamHandle.DeflateInit2_(CompressionLevel level, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy)
at System.IO.Compression.DeflaterZLib.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy)
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode, IntPtr errorInfo)
at System.IO.Compression.ZLibNative.ZLibStreamHandle.NativeZLibDLLStub.LoadZLibDLL()
at System.IO.Compression.ZLibNative.ZLibStreamHandle.NativeZLibDLLStub..cctor()
 
Request information: 
Request URL: http://sharepointserver:15225/ScriptResource.axd?d=SoSvYHi6vtROzPyGtlLn4uvE_48Ih9qbanGgiHN8gGZrqDOZbu1GQfH_u9B3AW_WlL3vrJ0YTgmneMRplt1-ZvArDdF8RSP5zDV7TQrzcbvDdJAynwanKpuJFP3zAr0RvyjwxYx5K6h8RGmmWqCPlf4m__4Msb14GnYV6PGSqfNC0MGZEBIoOWSfyh_WP4m20&t=2a48f442 
 
Request path: /ScriptResource.axd
User host address: ::1 
User:  
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\IUSR 
 
Thread information:
Thread ID: 301
Thread account name: NT AUTHORITY\IUSR 
Is impersonating: False 
Stack trace:    
at System.IO.Compression.DeflaterZLib.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy)
at System.IO.Compression.DeflaterZLib..ctor(CompressionLevel compressionLevel)
at System.IO.Compression.DeflateStream.CreateDeflater(Nullable`1 compressionLevel)
at System.IO.Compression.DeflateStream..ctor(Stream stream, CompressionMode mode, Boolean leaveOpen)
at System.IO.Compression.GZipStream..ctor(Stream stream, CompressionMode mode)
at System.Web.Handlers.ScriptResourceHandler.ProcessRequestInternal(HttpResponseBase response, String decryptedString, VirtualFileReader fileReader)
at System.Web.Handlers.ScriptResourceHandler.ProcessRequest(HttpContextBase context, VirtualFileReader fileReader, Action`2 logAction, Boolean validatePath)
 

Cause

In this case, the actual problem was an access denied while attempting to load the GZip DLL.

Example:

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
 at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
 at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode, IntPtr errorInfo)
 at System.IO.Compression.ZLibNative.ZLibStreamHandle.NativeZLibDLLStub.LoadZLibDLL()
 at System.IO.Compression.ZLibNative.ZLibStreamHandle.NativeZLibDLLStub..cctor()
 

This access denied was caused by a missing required "Replace a process level token" policy.

Resolution

To resolve this issue the system GPO was modified to include the Application Pool Service Account inside the "Replace a process level token" policy.

More Information

Replace a process level token
https://technet.microsoft.com/en-us/library/cc957225.aspx


Comments (2)

  1. Derek Smay says:

    I’ve seen this exact issue when the Authenticated users is removed from Bypass traverse checking as well

    1. Hi Derek,

      Thank you for informing us that other policies can have the same effect.

      -Mike

Skip to main content