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.

CompressionStrategy strategy)
at System.IO.Compression.DeflaterZLib..ctor(CompressionLevel compressionLevel)
at System.IO.Compression.DeflateStream.CreateDeflater(Nullable1 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, Action2 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(Nullable1 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, Action2 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

Leave a Reply