Cuando abro un Excel en Excel Services me lanza el error: "The workbook cannot be opened"
Revisando los logs, veo los siguientes errores:
Error 1:
ServerSession.ProcessServerSessionException: An exception during ExecuteWebMethod has occurred for server: http://urlwebapplication:32843/021d25c448d8404da46c5b6ef1609db8/ExcelService*.asmx, method: OpenWorkbook, ex: Microsoft.Office.Excel.Server.CalculationServer.Proxy.ServerSessionException: The workbook cannot be opened..
Error 2:
Result=Microsoft.Office.Excel.Server.CalculationServer.Proxy.ServerSessionException: The workbook cannot be opened.
at Microsoft.Office.Excel.Server.CalculationServer.Proxy.ServerSession.ExecuteWebMethodCore(WebMethodType webMethodType, WebMethodBehaviorAttribute webMethodBehavior, CommandParameter parameter, CoreWebMethod coreWebMethod)
at Microsoft.Office.Excel.Server.CalculationServer.Proxy.ServerSession.ExecuteWebMethod(WebMethodType webMethodType, WebMethodBehaviorAttribute webMethodBehavior, CommandParameter parameter, CoreWebMethod coreWebMethod)
EwaState.OpenWorkbookAndUpdateState: errors occurred while trying to open the workbook, [MessageId: GenericFileOpenError, MessageIdHash: -2005647745]
Solución
Ejecuto el siguiente script de powershell
$w = Get-SPWebApplication –Identity <URL of the Web application>
$w.GrantAccessToProcessIdentity("<insert service account>")
La cuenta que debo otorgarle permisos, es la de Excel Services. Para ello realizo los siguientes pasos:
Entro al Central Administration a la sección se Security. “Configure Service Accounts”
Elijo la cuenta que se usa para el pool del Service Application de Excel Services. En mi caso era Service Application Pool – Sharepoint Web Services Default, pero puedo variar la cuenta dependiendo como lo tengas configurado.
Ej: si la cuenta era DOMINIO\AppPoolDefaultAccount
$w = Get-SPWebApplication –Identity http://url_webApplication
$w.GrantAccessToProcessIdentity("DOMINIO\AppPoolDefaultAccount")
Este comando lo que hace es:
- Agregar la cuenta que ejecuta Excel Services como usuario en las bases de contenido del web application
- Otorga a la cuenta que ejecuta Excel Services el rol de SPDataAccess
- Otorga a la cuenta que ejecuta Excel Services permisos de full control sobre el Web Application vía una policy.
Thank you, my friend
ResponderEliminar