Symptoms
- When opening OneNote notebooks in the browser, you get an error that “This notebook cannot be opened for editing”
- Seems to be user & machine specific, works for some and not others
- Does not matter which WFE you are connected to
- Does not happen on all web applications (in my scenario, it only happened on one web app)
- No errors in the application event log or in the SharePoint logs with standard logging levels
Troubleshooting
As usual, the first step is to turn up diagnostic logging in Central admin. For this issue, in order to see the errors, I enabled verbose logging on all categories. Just enabling verbose on Office Web Apps category did not produce the results I needed.
Here are the errors that proved to be useful:
07/30/2013 09:56:46.04 w3wp.exe (0x0214) 0x32BC SharePoint Foundation Client File Access 0000 Monitorable csi server sandbox work throw exception: System.TypeInitializationException: The type initializer for ‘Microsoft.SharePoint.Utilities.SandboxCommunicator’ threw an exception. —> System.ComponentModel.Win32Exception: Access is denied at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.OpenProcessHandle() at System.Diagnostics.Process.get_Handle() at Microsoft.SharePoint.Utilities.SandboxCommunicator..cctor() — End of inner exception stack trace — at Microsoft.SharePoint.Utilities.SandboxCommunicator.UnmarshalStreamFromSandbox() at Microsoft.SharePoint.Utilities.SPUtility.PerformSandboxOperation(SandboxCommunicator communicator, ExecuteCellStorageBinaryRequestParameters paramVals) at Microsoft.SharePoint.Utilities.SPUtility.ExecuteCellStorageBinaryRequest(SPFile spfile, Boolean fileExists, Stream request, Boolean coalesce, Guid& partitionID, String userName, Boolean coauthVersioning, String etagMatching, Boolean fExpectNoFileExists, String contentChangeUnit, String clientFileID, String bypassSchemaID, Int64 nLockType, String lockID, Int64 nTimeout, Boolean createParentFolder, String& etagReturn, Boolean& allRequestSucceeded, Int32& coalesceHRESULT, String& coalesceErrorMessage, Boolean& containHotboxData, Boolean& haveOnlyDemotionChanges, Int32& binaryReqCountQuota) a5ffcef2-0cd8-4dae-9e96-5ed99e5805da
Watson bucket parameters: Office Web Apps, ULSException14, 52a97675 “office web apps”, 0e00178d “14.0.6029.0”, 1f65804a “microsoft.sharepoint”, 0e0017e5 “14.0.6117.0”, 4f4def78 “wed feb 29 03:27:20 2012”, 000078c2 “000078c2”, 00000014 “00000014”, b4892e93 “typeinitializationexception”, 64366b79 “d6ky”
ttidLogException CErrorException thrown. IError=ICsiError: csierrBlobHeap_BlobNotFound (0x25A)
It was the error that contained the text “BlobNotFound” that led me to the solution.
Solution
Disable the BlobCache on the web application that is having issues. This setting is in the web.config file for the web application. Simply set the BlobCache enabled property to false.
<BlobCache location=”D:\BlobCache\14″ path=”\.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv)$” maxSize=”10″ enabled=”false” />
Make sure this change is made on all of your web front end servers.