Problem
Excel Services – Ein unbekanntes Problem ist aufgetreten – Unable to create or access workbook cache
We don’t know what happened. But something went wrong
Und in den ULS-Logs:
Unable to access the workbook cache.
Excel Services Application unable to function without a workbook cache.
Details
Versucht man im SharePoint ein Excel-Dokument direkt im Browser zu öffnen, so meldet Excel Services bei einigen Dateien folgenden Fehler:
Ein unbekanntes Problem ist aufgetreten.
Bitte wiederholen Sie diesen Vorgang.
Error Id: xxxxx-xxxxx-xxxxxx << Corellation-ID
Die Vorschau (im kleinen OWA-Fenster) sowie das Öffnen aus dem Browser heraus im Excel selbst funktionieren einwandfrei.
Im ULS-Log findet man folgende Einträge:
Product: Excel Services Application ExcelService.PostProcessRequest: Excel Server Exception: System.IO.DirectoryNotFoundException: Ein Teil des Pfades "C:\Windows\TEMP\Excel Server\FileCache\71a8f360-6d36-490a-a583-36b2aff63948\Workbooks\0981e94f.xlsx.xlserver" konnte nicht gefunden werden. bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) bei System.IO.FileStream..ctor(String path, FileMode mode) bei Microsoft.Office.Excel.Server.CalculationServer.CachedFile.CreateFileName(String fileExtension) bei Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbookManager.CacheStream(CachedFile cachedFile, FileLoader loader . . . |
Fix
Temp-Ordner manuell umbenennen bzw. löschen
- Auf jedem Server in der Farm (zumindest dort wo der Dienst „Dienste für Excel-Berechnungen“ läuft) in den Ordner
%windir%\Temp
wechseln und dort den Ordner Excel Server nach Excel Server.bac umbenennen.Falls auf einem der Server nicht umbenannt werden konnte, dort den IIS stoppen und dann umbenennen. - Nachdem alle Ordner umbenannt wurden, den IIS auf allen Servern mit iisreset /noforce neu starten.
Der Ordner (mit den Unterordnern) wird neu aufgebaut.
Oder alle Schritte per Skript erledigen
Alle Schritte kann man auch mit diesen Skript-Zeilen erledigen:
$path = "C:\Windows\Temp\Excel Server" iisreset /stop Rename-Item -path $path -newname "C:\Windows\Temp\Excel Server.bac" –force iisreset /start
Evtl. Probleme mit Berechtigungen
Evtl. könnte ein Problem auch mit den Berechtigungen vorliegen, was hier nicht der Fall war. (s. Link)