Excel Services & PowerPivot for SharePoint

Troubleshooting Excel Services and PowerPivot for SharePoint rendering and refreshing in the browser.

Excel Services & PowerPivot for SharePoint

  • Excel Services - Using a SharePoint List as a data source

    Since Excel Services inception (SharePoint 2007) users have been attempting to consume a SharePoint List in Excel Services.  Unfortunately this is not supported.  I will explain why and I will also provide a workaround using PowerPivot.

    If you are unsure whether or not you are using a SharePoint list as a data source, you can verify this by opening the workbook in Excel > Data > Connections > Properties > Definition tab.  If the connection contains Provider=Microsoft.Office.List.OLEDB.2.0;Data Source="":ApplicationName=Excel;Version 12.0.0.0, you are trying to consume a SharePoint List (also see screenshot).

     

    This connection is created by (the below example is using SharePoint 2013) List > Export to Excel:

    Below is Microsoft's documentation regarding Unsupported Features in Excel Services.

    Unsupported Features in Excel Services

    http://msdn.microsoft.com/en-us/library/ms496823(v=office.12).aspx

     

    Workaround:

    When you have PowerPivot for SharePoint installed you get the option to “Export as Data Feed” from your SharePoint lists.

      

    When using PowerPivot, there are 2 connections.  The first one is the Excel connection and the second is the PowerPivot Connection.

    Much like the previous screenshot, you can view the Excel connection by opening the workbook in Excel > Data > Connections > Properties > Definition tab

    You can view the PowerPivot connection via Excel > PowerPivot tab > Manage

    Choose Existing Connections

    Click Edit > Advanced > and you will be able to see List.atomsvc in Connection String.

    Once the data is in the PowerPivot Add-in then you can create a Pivottable off that set of data.

    Once your Pivottable is finished you now can publish this workbook back to SharePoint in the PowerPivot Gallery.

    Once the workbook is in the Gallery you can click on Manage data refresh to setup a daily refresh schedule.

    To test the connection go to the manage data refresh page and choose "Enable" &  "Also refresh as soon as possible".

    Important Note 1: I have seen cases where the refresh runs and eventually times out.  If you see this, you may need to grant the account running SQL Server Analysis Services (POWERPIVOT) Read permissions to the SharePoint list you are attempting to refresh.

    After this runs, you will see fresh data.

    Important Note 2:  The Scheduled Data Refresh is designed to run once a day during after business hours when server is experiencing the least amount of stress.  Therefore you will only see refreshed data once a day (versus real-time like when using Excel Services directly).

    Additional Articles:

    Using SharePoint lists as data sources with Excel Services (SharePoint Server 2010)
    http://technet.microsoft.com/en-us/library/gg576960.aspx

    Using a SharePoint list as a data source
    http://powerpivotgeek.com/2010/10/28/using-a-sharepoint-list-as-a-data-source/

    Using SharePoint List Data in PowerPivot Whitepaper
    http://download.microsoft.com/download/B/E/1/BE1AABB3-6ED8-4C3C-AF91-448AB733B1AF/SharePointListDataInPP.docx

  • Excel Services Fix - "The workbook cannot be opened".

    When opening an Excel workbook (.xlsx) in the browser the error "The workbook cannot be opened" is thrown:

    This is caused by the account running Excel Services not having proper permissions to the Content Database.  When you upload an Excel workbook to a SharePoint library, the workbook is stored as blobs in the Content Database.  When you choose to open this in Excel Services, the account running Excel Services needs to retrieve and reassemble the workbook.  If the account running Excel Services lacks proper permissions, "The workbook cannot be opened".

    We have a KB on how to resolve this issue:

    The Excel Services Application for SharePoint 2010 does not load or display workbooks

    http://support.microsoft.com/kb/981293

     

    In this blog, I will step you through this KB; where to collect data and explain what the two below SharePoint Management Shell Commands do:

     

    $w = Get-SPWebApplication –Identity <URL of the Web application>
    $w.GrantAccessToProcessIdentity("<insert service account>")

     

    You need to find the <URL of the Web application>.  To do this:

     

    1. Browse to the report library where the failing workbook is located and make note of the URL.

     

     

    2. Central Administration > Application Management > Manage web applications compare the URL to the list of Web Apps.  Find the correct Web App URL and add it to “URL of the web application”.

     

     

    You now have the first command: 

     

    $w = Get-SPWebApplication –Identity http://tschauer

     

    3. Central Administration > Security > Configure Service Accounts > from the first dropdown, select the application pool running "Excel Services Application" and add that account where is says “<insert service account>”.

     

    You now have the second command:

    $w.GrantAccessToProcessIdentity("Devtest\Excel_Services_Account")

    So now you can run these commands by following the below steps:

    1. Click Start, click All Programs.
    2. Click Microsoft SharePoint 2010/2013 Products.
    3. Click SharePoint 2010/2013 Management Shell.
    4. At the Windows PowerShell command prompt (PS C:\>), type the following command, and then press ENTER:

    $w = Get-SPWebApplication –Identity http://tschauer
    $w.GrantAccessToProcessIdentity("Devtest\Excel_Services_Account")

    When you run these commands you are:

    1. Adding the account running Excel Services as a User to the Content Database (Security > Users).
    2. Giving the account running Excel Services the SPDataAccess Membership (Account > Membership)
    3. Giving the account running Excel Services Full Control to the Web Application (Via "Policy for Web Application")

  • PowerPivot for SharePoint - Browser Refresh Fails (Data Refresh not supported in Office Web Apps)

    We have been seeing Excel Services/PowerPivot data refresh issues using SharePoint 2013 and Office Web Apps (OWA). 

    Some customers have been running into issues when attempting to refresh data in a PowerPivot workbook on SharePoint 2013 using OWA server, and are seeing errors similar to the following:

    "PivotTable Operation Failed
    An error occurred while working on the Data Model in the workbook."

     or

     "External Data Refresh Failed
    An error occurred while working on the Data Model in the workbook. Please try again.
    We were unable to refresh one or more data connections in this workbook.  The following connections failed to refresh:
    <Connection>"

    First, a little background information on SharePoint 2013 and Office Web Apps:

    When SharePoint 2013 is configured to use Office Web Apps (OWA), by default, Excel files stored on SharePoint are viewed in WOPI frames and can be edited via OWA.  However, when the SharePoint farm has been configured to use Excel Web Apps, the features available in Excel Services and Power Pivot will depend on how the Excel Web App server has been configured. 

    Excel Web App runs in one of two modes: 

                We can see that the xlviewer.aspx is invoked to view the workbook. 

                We can see that the WOPIFrame.aspx is invoked to view the workbook.  We can also see that Web Apps is rendering the workbook at the top of the browser window.  (See the screenshots above.)

    Please see the following for an in-depth overview of the BI features in Excel Services available by each mode:

    Overview of Excel Services in SharePoint Server 2013
    http://technet.microsoft.com/en-us/library/ee424405.aspx
     

    When OWA Server view mode is used to view workbooks, the following BI features will not be available.

    • Excel Web Access Web Part
    • Refresh OData connections
    • View and interact with Power View reports
    • View and interact with PowerPivot data models
    • Refresh PowerPivot data models
    • Refresh data by using the Excel Services unattended service account
    • Refresh data by using Effective User Name connections
    • Kerberos delegation

    We can use filters and slicers for PowerPivot workbooks if we suppress OWA from handling the .xlsx file type and force SharePoint to use SharePoint view mode.  We can do that by running the following command via PowerShell on the SharePoint farm:

    New-SPWOPISuppressionSetting -extension xlsx -action view

    New-SPWOPISuppressionSetting
    http://technet.microsoft.com/en-us/library/jj219443

    Once the suppression setting is applied to the farm, we can now work with slicers and refresh data.  We can still also edit the document in the browser with OWA!

    Additional Resources:

    Deploy Office Web Apps Server:
    http://technet.microsoft.com/en-us/library/jj219455.aspx

    Configure SharePoint 2013 to use Office Web Apps
    http://technet.microsoft.com/en-us/library/ff431687.aspx
     
    Overview of Office Web Apps and how they work on-premises with harePoint 2013
    http://technet.microsoft.com/en-us/library/ff431685.aspx

  • PowerPivot 2013 for SharePoint - "External Data Refresh Failed" using Interactive Data Refresh via "Use the authenticated user's account"

    When refreshing in the browser you may come across this error:

    "External Data Refresh Failed
    An error occurred while working on the Data Model in the workbook. Please try again.
    We were unable to refresh one or more data connections in this workbook.  The following connections failed to refresh:
    <Connection>"

    This happens when you choose Data > "Refresh Selected Connection" or "Refresh All Connections"

    If the SharePoint user has permissions to the PowerPivot Data Source AND that data source accepts Windows Credentials (SQL 2012/SSAS 2012) you can pull real-time data!  This is achieved via the "Use the authenticated user's account" found in the Excel (PowerPivot) workbook > Data > Connections > Properties.

    In "What is PowerPivot for SharePoint? Part 2".  I discuss the 3 types if Refresh in PowerPivot 2013.  With the "Interactive Data Refresh" you are passing the User's Windows Credentials to the backend data source (so make sure they have permissions to the data source.

    Configuration Steps:

    (*Disclaimer: This is meant to be a template to set up delegation and may not explicitly apply to your situation.  Modifications may be necessary.)

    To get this to work, you need to first make sure you are not opening the workbook in the "Microsoft Excel Web App" (see our previous blog).

    To refresh external data in PowerPivot 2013, you need to follow several steps to configure your environment & set up Delegation.

    1. Verify that the PowerPivot instance is at least 11.0.3000 (SQL 2012 SP1) and that it is running in SharePoint mode (SQL Management Studio > Right Click the PowerPivot Instance > Properties):

    2. Collect the account running "SQL Server Analysis Services (POWERPIVOT)":

    To do this, log on to the server running PowerPivot > Start > Run > Services.msc and locate "SQL Server Analysis Services (POWERPIVOT)", you will see the account in the "Log On As" column (write that account down, you will need it shortly).

     

    3. On the Analysis Services Server (PowerPivot Server) running in SharePoint mode, Add the Analysis Services service account (account running "SQL Server Analysis Services (POWERPIVOT)") to the "Act as part of the operating system" privilege:

    a. Start > Run “secpol.msc”
    b. Click Local Security Policy, then click Local policies, and then click User rights assignment.
    c. Add the service account.
     

    4. Restart Excel Services and Reboot the Analysis Services server (the Server running PowerPivot). 

     

    If the backend data source is on the same server as the Analysis Services PowerPivot instance, delegation is not required and you are done at this point!

    5. Collect the account running "SQL Server (MSSQLSERVER)" or "SQL Server Analysis Services (<Instance>)":

    "SQL Server (MSSQLSERVER)": 

    Log on to the server running SQL > Start > Run > Services.msc and locate "SQL Server (MSSQLSERVER)", you will see the account in the "Log On As" column (write that account down, you will need it shortly).

    "SQL Server Analysis Services (<Instance>)":

    Log on to the server running SQL > Start > Run > Services.msc and locate "SQL Server Analysis Services (<Instance>)", you will see the account in the "Log On As" column (write that account down, you will need it shortly).

    6. Add these SPNs to the account running the data source your workbook is connecting to.  Either "SQL Server (MSSQLSERVER)" or "SQL Server Analysis Services (<Instance>)":

    Account Running SQL Server:

    MSSQLSVC/<SQLServer_Name>
    MSSQLSVC/<SQLServer_Name.FQDN>

    Account Running SQL Server Analysis Services:

    MSOLAPSvc.3/<SQL_Server_Analysis_Services_Server_Name:Instance>
    MSOLAPSvc.3/<SQL_Server_Analysis_Services_Server_Name.FQDN:Instance>

    ******Important Note:  If Analysis Services has a named instance other than ("MSSQLSERVER)" (this is the default Instance) you will need include that in the Service Principal Name.  In the below example, I will use the instance name "TABULAR".

    SQL Server:

    MSSQLSvc/<SQL_Server_Server_Name:Instance>
    MSSQLSvc/<SQL_Server_Server_Name.FQDN:Instance>

    Example:

    MSSQLSvc/SQLSvr:TABULAR
    MSSQLSvc/SQLSvr.contoso.com:TABULAR

    SQL Server Analysis Server:

    MSOLAPSvc.3/<SQL_Server_Analysis_Services_Server_Name:Instance>
    MSOLAPSvc.3/<SQL_Server_Analysis_Services_Server_Name.FQDN:Instance>

    Example:

    MSOLAPSvc.3/SSASSvr:TABULAR
    MSOLAPSvc.3/SSASSvr.contoso.com:TABULAR

    ******Important Note 2: If the Analysis Services Server has a Named Instance other than (MSSQLSERVER) (which is Default), like "TABULAR".  You will need to add MSOLAPDisco.3 SPNs to the account running the SQL Browser service (Example: Contoso\BrowserSvc). “Disco” is short for “Discovery”.  This needs to be set so the Browser Service can discover SSAS.

    MSOLAPDisco.3/<SQL_Server_Analysis_Services_Server_Name>
    MSOLAPDisco.3/<SQL_Server_Analysis_Services_Server_Name.FQDN>

    Example:

    MSOLAPDisco.3/SSASSvr
    MSOLAPDisco.3/SSASSvr.contoso.com

    Article: More Information regarding the MSOLAPDisco.3 SPNs can be found in the below article:

    An SPN for the SQL Server Browser service is required when you establish a connection to a named instance of SQL Server Analysis Services or of SQL Server
    http://support.microsoft.com/kb/950599

    7. Constrain Delegation between the account running "SQL Server Analysis Services (POWERPIVOT)" and "SQL Server (MSSQLSERVER)" or "SQL Server Analysis Services (<Instance>)":

    In Active Directory Users and Computers > Account 1> Properties > Delegation Tab > Trust this user for delegation to specified services only > Use any authentication protocol > Add… > Users or Computers… > Account 2 > Check Names > OK > “Select All” Available Services > OK > OK

    Example:

    Additional Notes:

    Excel Services sends the Analysis Services server a process command that instructs the server to impersonate a user account. To obtain system rights sufficient to perform the user impersonation-delegation process, the Analysis Services service account, requires Act as part of the operating system privilege on the local server. The Analysis Services server also needs to be able to delegate the user's credentials to data sources. The query result is sent to Excel Services.

    Delegation from the Excel Services service account or from Claims to Windows Token Service (C2WTS) to the Analysis services instance is not required.  Therefore no configuration for KCD from Excel Service or C2WTS to PowerPivot Analysis Services service is necessary. 

    If the backend data source is on the same server as the Analysis Services PowerPivot instance, delegation is not required. 

     

     

    If you do not have a SPN set for the account running the "SQL Server Analysis Services (POWERPIVOT)", the Delegation tab will not be present for that Account in Active Directory.  I propose adding the dummy SPN, Http/dummy.

    Delegation from the Excel Services service account or from Claims to Windows token service (C2WTS) to the Analysis services instance is not required. Therefore no configuration for KCD from Excel Services or C2WTS to PowerPivot AS service is necessary. 

  • Excel Services 2010 - "Unable to process the request." Maximum Private Bytes size exceeded. Unable to complete the operation.

    Issue:

    ==========

    Unable to render a workbook in the browser:

    Unable to process the request - Wait a few minutes and try performing this operation again"

    Cause:

    ==========

    According to the ULS logs, you are exceeding you “Maximum Private Bytes” for some unknown reason.  The ULS logs don’t tell me enough.  I assume “something” is causing the w3wp.exe process to grow large.  Potentially a user is opening a corrupt workbook in Excel Services, and this is causing a memory leak.  If you find that something, then you have resolved this issue.  If you can't find it, you will want to schedule an application pool recycle after hours (see resolution).

    47:24.3 w3wp.exe (0x3938)                        0x4838 Excel Services Application     Excel Calculation Services     eca4 High     ExcelService.CheckIfRequestCanBeProcessed: Memory Manager does not have available resources to execute the OpenWorkbook request f01f8b3c-c8be-460d-8313-9ae6f0e5ab19     

    47:24.3 w3wp.exe (0x3938)                        0x4838 Excel Services Application     Session                        5255 Critical Maximum Private Bytes size exceeded. Unable to complete the operation. [Session:  User: 0#.w|wellmark\iae612] f01f8b3c-c8be-460d-8313-9ae6f0e5ab19     

    47:24.4 w3wp.exe (0x0124)                        0x4DD0 Excel Services Application     Web Front End                  abho High     ServerSession.GetNextServerHealthBased: There are no healthy servers although the number of available server in the farm is {1}; updated with no candidates available for the health based load balancing. The update duration was {0} millisecs f01f8b3c-c8be-460d-8313-9ae6f0e5ab19

    Resolution:

    ==========

    Rebooting the server will remedy this, but that is not realistic.

    You can run IISReset /noforce that too should remedy the issue.

    To avoid a complete IISReset, you can manually recycle the Application Pool Running Excel Services or you can set the Excel Services Application Pool to recycle once daily, like at 2am (instructions below).

    Here are instructions on how to recycle the application pool running Excel Services.

    In IIS, you will need to expand “SharePoint Web Services” (make sure you are using “Content View”).  You will need to click on each GUID under “SharePoint Web Services” until you see the “ExcelService.asmx”, once you find this (special note, if you have multiple “Excel Services Service Applications”, there will be multiple GUIDs with the ExcelServices.asmx under it, you will need to either delete one of the “Excel Services Service Applications” or set both to Recycle), click on “Advanced Settings…”.  Here you will see the “Application Pool” once you find the GUID (in this case 9bf574c7cfc04e7e9a8595ec2e887fb8), you will know which Application Pool to Recycle.

    Go to Application Pools > Right Click on 9bf574c7cfc04e7e9a8595ec2e887fb8 > Advanced Settings…

    You can set the time you want to Recycle under Recycling > Specific Times

  • Troubleshooting the PowerPivot Gallery. Thumbnails Not Rendering. Invoking and Analyzing the Getsnapshot.exe/Gallerysnapshot.exe

    Before you do anything, browse (while logged on the WFE as the account running the Web Application) to C:\Users\<WebAppAccount>\AppData\Local\Temp.  This location MUST exist, I have seen issues where the User Profile for the WebAppAccount does not exist.  This is where the .pngs (thumbanails) are placed prior to being updated in the PowerPivot Gallery.  If they can't be placed here, you can rest assured they will not be updated in the PowerPivot Gallery.

     


     

    If my blog does not resolve it.  You will need to manually invoke the Getsnapshot.exe, rename the “thumbnails.info” file that is generated on the desktop to “thumbnails.txt” and look at its contents.  To manually invoke the thumbnails, find the account that is running your Web Application.  Log into the WFE as that account:

     

    SharePoint 2010:

     

    Start > Run > CMD > C:\inetpub\wwwroot\wss\VirtualDirectories\80\bin

     

    Pass this parameter: GetSnapshot.exe "http://tschauer2010" "http://tschauer2010/PowerPivot%20Gallery/PowerPivotWorkbook.xlsx" "C:\Users\tschauer\Desktop" thumbnail
    26 300

     

    SharePoint 2013:

     

    Start > Run > CMD > C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\bin

     

    Pass this parameter: GallerySnapshot.exe "http://tschauer2010" "http://tschauer2010/PowerPivot%20Gallery/PowerPivotWorkbook.xlsx" "C:\Users\tschauer\Desktop" thumbnail
    26 300

     

    *To build the above:

     

    1. You need to know the Web App, in this case: http://tschauer2010 (CA > Application Management > Web Applications > Manage Web Applications > URL): http://tschauer2010
    2. The path of the workbook, in this case: http://tschauer2010/PowerPivot%20Gallery/PowerPivotWorkbook.xlsx

     

    Here is an example of what it will look like (SharePoint 2010):

      

     If this runs, you will see the below icons on the desktop (this takes time):

       

    The “thumbnails.txt” (after you rename and open in notepad) could say many things.  Here are examples and how I fixed them.

    1. To fix the below, disableloopbackcheck (see KB 896891):

     <SnapshotCaptureLog serverUrl="http://tschauer2010" workbookUrl="http://tschauer2010/PowerPivot%20Gallery/PowerPivotWorkbook.xlsx"
    fileNameBase="747f6f1d_0307_40f3_84ca_e7b4b3f05373"
    snapshotCount="26" timeout="300">
    <Error timeout="True">System.TimeoutException: The operation has timed out.</Error>
    </SnapshotCaptureLog>

    2. To fix the below add the below Service Pack to the PPIV machine:

    Microsoft® SQL Server® 2008 R2 Service Pack 1
    http://www.microsoft.com/download/en/details.aspx?id=26727

    <SnapshotCaptureLog serverUrl="http://tschauer2010” workbookUrl="http://tschauer2010/PowerPivot%20Gallery/PowerPivotWorkbook.xlsx" fileNameBase="thumbnails"
    snapshotCount="26" timeout="300">
    <Error>onXLFrameLoad::Error! document.readyState = interactive</Error>
    <Error>onXLFrameLoad::Error! document.readyState =
    interactive</Error>
    </SnapshotCaptureLog>

    3. To fix the below, you can do one 1 of 2 things found in this KB:

    Error message when you try to access a server locally by using its FQDN or its CNAME alias after you install Windows Server 2003 Service Pack 1: "Access denied" or "No network provider accepted the given network path"
    http://support.microsoft.com/kb/926642

    Method 1 (recommended): Create the Local Security Authority host names that can be referenced in an NTLM authentication request

    1.   Go to REGEDIT > HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Lsa>MSV1_0
    2.   Right click MSV1_0 > New > Multi-String Value
    3.   Type ‘BackConnectionHostNames’
    4.   Right click & select ‘Modify’
    5.   Enter the Hostname of the site: WEBSITENAME (and on a new line enter the FQDN, WEBSITENAME.domain.com as well)

    tschauer
    tschauer.<fqdn>

    Method 2: Disable the authentication loopback check (On all WFE's (make sure to reboot)).

    Re-enable the behavior that exists in Windows Server 2003 by setting the DisableLoopbackCheck registry entry in the
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa registry
    subkey to 1. To set the DisableLoopbackCheck registry entry to 1, follow these steps on the client computer:

    1.Click Start, click Run, type regedit, and then click OK.
    2.Locate and then click the following registry subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
    3.Right-click Lsa, point to New, and then click DWORD Value.
    4.Type DisableLoopbackCheck, and then press ENTER.
    5.Right-click DisableLoopbackCheck, and then click Modify.
    6.In the Value data box, type 1, and then click OK.
    7.Exit Registry Editor.
    8.Restart the computer.

    <SnapshotCaptureLog serverUrl="http://tschauer" workbookUrl="http://tschauer2010/PowerPivot%20Gallery/PowerPivotWorkbook.xlsx" fileNameBase="thumbnail" snapshotCount="26" timeout="300">
    <Error>Terminatingcapture process: 'Illegal redirection to resources outside of the web application:'res://ieframe.dll/navcancl.htm''</Error>
    <Error>Terminating capture process: 'Illegal redirection to resources outside of the web application: 'res://ieframe.dll/navcancl.htm''</Error>
    <Error>Terminating capture process: 'Illegal redirection to resources outside of the web application: 'res://ieframe.dll/navcancl.htm''</Error>
    <Error>Terminating capture process: 'Illegal redirection to resources outside of the web application: 'res://ieframe.dll/navcancl.htm''</Error>
    </SnapshotCaptureLog>

    Update:

    If you are using SSL you will want to look at you CAPI2 Event logs (Application and Services Logs > Microsoft > Windows > CAPI2) for GallerySnapshot.exe errors.  I have seen where servers are unable to retrieve the SSL cert for a couple of reasons (expiration or firewall/proxy blocking).  A workaround is to log on to the Web Front Servers as the account running the Web Application > Internet Options > Advanced > and uncheck "Check for server certificate revocation".  For security purposes you will want to get the Certificate issue resolved, but this can be a temporary workaround:


    4. To fix the below:

    Log on to all machines that are Web Front Ends with the account (very important) that is running the Web Application hosting the PowerPivot Gallery.  If this account cannot log on to that server you have a problem.  It needs to have access to that server.  Once logged on, Open Internet Explorer >Internet Options > Security tab > Trusted Sites > Sites > add the URL to the list of Trusted Sites (may need to log on to the WFE(s) as account running SP-80): http://tschauer2010:80

    I have also seen that you need to un-tick "Require server verification (http:s) for all sites in this zone." under Internet Explorer >Internet Options > Security tab > Trusted Sites > Sites.

    <SnapshotCaptureLog serverUrl="http://tschauer2010" workbookUrl="http://tschauer2010/PowerPivot%20Gallery/PowerPivotWorkbook.xlsx" fileNameBase="thumbnail"
    snapshotCount="26" timeout="300">
    <Info>'http://tschauer2010:80' was found in a different trust zone (URLZONE_TRUSTED). Attempting to remove from URLZONE_TRUSTED.</Info>
    <Info>’http://tschauer2010:80’ was removed from (URLZONE_TRUSTED)</Info>
    <Info>’http://tschauer2010:80’ has been added to(URLZONE_INTRANET)</Info>
    </SnapshotCaptureLog>

    Refreshing PowerPivot Gallery thumbnails
    http://blogs.msdn.com/b/mtn/archive/2010/10/15/how-to-manually-refresh-powerpivot-gallery-thumbnails.aspx

  • PowerView - An error has occurred while loading the model for the item or data source.

     

    Even though this is the PowerPivot and Excel Services blog, I felt that adding a blog on this common PowerView error was worthy of a post.

    Many times I have seen customers with the error:

    "Power View

    An error occurred while loading the model for the item or data source '<filename.extension'>.  Verify that the connection information is correct and that you have permissions to access the data source."

     

     

     

    If you expand the "Show details", you will see Claims errors, but what does that mean?

    <detail><ErrorCode xmlns="http://www.microsoft.com/sql/reportingservices">rsCannotRetrieveModel</ErrorCode><HttpStatus xmlns="http://www.microsoft.com/sql/reportingservices">400</HttpStatus><Message xmlns="http://www.microsoft.com/sql/reportingservices">An error occurred while loading the model for the item or data source 'http://microsoft/sites/bidemo/PowerPivot/Tabular.bism'. Verify that the connection information is correct and that you have permissions to access the data source.</Message><HelpLink xmlns="http://www.microsoft.com/sql/reportingservices">http://go.microsoft.com/fwlink/? inkId=20476&amp;EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings&amp;EvtID=rsCannotRetrieveModel&amp;ProdName=Microsoft%20SQL%20Server%20Reporting%20Services&amp;ProdVer=11.0.3349.0</HelpLink><ProductName xmlns="http://www.microsoft.com/sql/reportingservices">Microsoft
    SQL Server Reporting Services</ProductName><ProductVersion xmlns="http://www.microsoft.com/sql/reportingservices">11.0.3349.0</ProductVersion><ProductLocaleId xmlns="http://www.microsoft.com/sql/reportingservices">127</ProductLocaleId><OperatingSystem xmlns="http://www.microsoft.com/sql/reportingservices">OsIndependent</OperatingSystem><CountryLocaleId xmlns="http://www.microsoft.com/sql/reportingservices">1033</CountryLocaleId><MoreInformation xmlns="http://www.microsoft.com/sql/reportingservices"><Source>ReportingServicesLibrary</Source><Message
    msrs:ErrorCode="rsCannotRetrieveModel" msrs:HelpLink="http://go.microsoft.com/fwlink/?LinkId=20476&amp;EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings&amp;EvtID=rsCannotRetrieveModel&amp;ProdName=Microsoft%20SQL%20Server%20Reporting%20Services&amp;ProdVer=11.0.3349.0"
    xmlns:msrs="http://www.microsoft.com/sql/reportingservices">An error occurred while loading the model for the item or data source 'http://microsoft/sites/bidemo/PowerPivot/Tabular.bism'. Verify that the connection information is correct and that you have permissions to access the data source.</Message><MoreInformation><Source>Microsoft.ReportingServices.ProcessingCore</Source><Message msrs:ErrorCode="rsErrorImpersonatingUser" msrs:HelpLink=http://go.microsoft.com/fwlink/? inkId=20476&amp;EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings&amp;EvtID=rsErrorImpersonatingUser&amp;ProdName=Microsoft%20SQL%20Server%20Reporting%20Services&amp;ProdVer=11.0.3349.0 xmlns:msrs="http://www.microsoft.com/sql/reportingservices">Cannot
    impersonate user for data source 'TemporaryDataSource'.</Message><MoreInformation><Source>Microsoft.ReportingServices.ServiceRuntime</Source><Message msrs:ErrorCode= "rsClaimsToWindowsTokenError" msrs:HelpLink=http://go.microsoft.com/fwlink/? inkId=20476&amp;EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings&amp;EvtID=rsClaimsToWindowsTokenError&amp;ProdName=Microsoft%20SQL%20Server%20Reporting%20Services&amp;ProdVer=11.0.3349.0 xmlns:msrs= "http://www.microsoft.com/sql/reportingservices">Cannot convert claims identity to windows token. </Message><MoreInformation> <Source>Microsoft.SharePoint</Source><Message>Could not retrieve a valid Windows identity.</Message><MoreInformation><Source>mscorlib</Source><Message>Access is  enied.</Message></MoreInformation> </MoreInformation></MoreInformation></MoreInformation></MoreInformation><Warnings xmlns=http://www.microsoft.com/sql/reportingservices /></detail>

     

    If you want to analyze this more you can use Rodney Viana's tool to analyze the C2WTS:

    Troubleshooting Claims to Windows NT Token Service (c2WTS) in SharePoint 2010 may be difficult if you don’t know where to start

    http://blogs.msdn.com/b/rodneyviana/archive/2011/07/19/troubleshooting-claims-to-windows-nt-token-service-c2wts-in-sharepoint-2010-may-be-difficult-if-you-don-t-know-where-to-start.aspx

     

    I ran Rodney's tool and saw:

     

     Testing Service c2WTS
    +- Service c2WTS found
    +- Service c2WTS is running
    +- Path of service: C:\Program Files\Windows Identity Foundation\v3.5\c2wtshost.exe
    +- Config File: C:\Program Files\Windows Identity Foundation\v3.5\c2wtshost.exe.config
    +- Service Logon: SYSTEM\NT AUTHORITY
    ----- start of config file ----
    <?xml version="1.0"?>
    <configuration>
      <configSections>
        <section name="windowsTokenService" type="Microsoft.IdentityModel.WindowsTokenService.Configuration.WindowsTokenServiceSection, Microsoft.IdentityModel.WindowsTokenService, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </configSections>
      <startup>
        <supportedRuntime version="v4.0" />
        <supportedRuntime version="v2.0.50727" />
      </startup>
      <windowsTokenService>
        <!--
            By default no callers are allowed to use the Windows Identity Foundation Claims To NT Token Service.
            Add the identities you wish to allow below.
          -->
        <allowedCallers>
          <clear />
          <add value="WSS_WPG" />
        </allowedCallers>
      </windowsTokenService>
    </configuration>
    -----  end of config file  ----
    Retrieving security groups/users allowed to use the service from config file
    +- WSS_WPG
    Trying to login .........
    Using current Windows Credentials
    ***** c2WTS could not provide a valid Windows Token. Reason: WTS0003: The caller is not authorized to access the service.

    Server stack trace:
       at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
       at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
       at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
       at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
       at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

    Exception rethrown at [0]:
       at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
       at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       at Microsoft.IdentityModel.WindowsTokenService.S4UClient.IS4UService_dup.UpnLogon(String upn, Int32 pid)
       at Microsoft.IdentityModel.WindowsTokenService.S4UClient.<>c__DisplayClass1.<UpnLogon>b__0(IS4UService_dup channel)
       at Microsoft.IdentityModel.WindowsTokenService.S4UClient.CallService(Func`2 contractOperation)
       at c2WTSTest.Form1.button2_Click(Object sender, EventArgs e)

    Now Verifying if user msft\test has rights on c2WTS
    +- User  msft\test has no access to the service
    *** Analysis Complete ***

    The first highlighted item tells me the account that was running the C2WTS: SYSTEM\NT AUTHORITY

     

    The second highlighted item gives me the error: c2WTS could not provide a valid Windows Token. Reason: WTS0003: The caller is not authorized to access the service. 

     

    The error tells me that the account running the Claims to Windows Token Service lacks permissions/security.

     

    Steps to resolve the issue.

     

    I changed the Claims to Windows Token Service to a managed account and then applied the below changes (Note: you can attempt to apply the below changes to the existing account running the C2WTS):

     

    a. Add the service account to the local Administrators Groups.

    b. In local security policy (secpol.msc) under user rights assignment give the service account the following permissions:

    i. Act as part of the operating system

    ii. Impersonate a client after authentication

    iii. Log on as a service

    Restart IIS

     

    After making this change the error went away.

  • FIXED - PowerPivot Scheduled Data Refresh - Call to Excel Services returned an error.

    This issue is fixed in SharePoint 2013 SP1 (Released Feb 25th 2014):

    Update center for Office, Office servers, and related products
    http://technet.microsoft.com/en-US/office/ee748587.aspx   

    Issue:

    "Call to Excel Services returned an error" when performing a Scheduled Data Refresh.

    In the ULS logs,  you will see:

    w3wp.exe (0x0A28)            0x0DB8  PowerPivot Service             Data Refresh        99           High                EXCEPTION: System.InvalidOperationException: Call to Excel Services returned an error. ---> Microsoft.AnalysisServices.SPClient.Interfaces.ExcelServicesException: We're sorry. We can't open the workbook in the browser because it uses these unsupported features:    • Shapes or other objects ---> Microsoft.Office.Excel.Server.WebServices.ExcelServerApiException: We're sorry. We can't open the workbook in the browser because it uses these unsupported features:    • Shapes or other objects     at Microsoft.Office.Excel.Server.WebServices.ApiShared.ExecuteServerSessionMethod(Boolean hasSessionId, String sessionId, CoreServerSessionMethod coreWebMethod, String name, Boolean skipFeatureCheck)     at Microsoft.Office.Excel.Server.WebServices.ExcelServiceInternal.OpenWorkbookInternal(String workbookPath, Boolean editingMode, String uiCultureName, String dataCultureName, Boolean newWorkbook, Boolean suppressRefreshOnOpen, Boolean openExclusive, Status[]& status)     at Microsoft.Office.Excel.Server.WebServices.ExcelServiceInternal.OpenWorkbookEx(String workbookPath, String uiCultureName, String dataCultureName, Boolean exclusive, Status[]& status)     at Microsoft.AnalysisServices.SPClient.ExcelApi.<>c__DisplayClassa.<OpenWorkbookEx>b__9(ExcelService svc, Status[]& status)     at Microsoft.AnalysisServices.SPClient.ExcelApi.Call[T](String fileUrl, ExcelServiceCall`1 serviceCall)     --- End of inner exception stack trace ---     --- End of inner exception stack trace ---     at Microsoft.AnalysisServices.SPClient.ExcelApi.Call[T](String fileUrl, ExcelServiceCall`1 serviceCall)     at Microsoft.AnalysisServices.SPClient.ExcelApi.Call[T](String fileUrl, ExcelServiceCall`1 serviceCall, String methodName, Object[] parameters)     at Microsoft.AnalysisServices.SPClient.ExcelApi.OpenWorkbookEx(String fileUrl, String uiCultureName, String dataCultureName, Boolean exclusive)     at Microsoft.AnalysisServices.SPClient.ASSPClientProxy.OpenWorkbookModelForRefresh(String workbookPath, SessionLifetimePolicy lifetimePolicy)     at Microsoft.AnalysisServices.SPAddin.DataRefresh.DataRefreshService.ProcessingJob(Object parameters)

    This is a rather generic error message.  However, we have seen several cases where the Scheduled Data Refresh fails because of Unsupported Features in the workbook. 

    We have a tool that you can use to remove these Unsupported Features.

    Excel Services Compatibility Checker Download Page

    http://blogs.msdn.com/b/cumgranosalis/archive/2007/06/29/excel-services-compatibility-checker-download-page.aspx

     

    First install the "Excel Services Compatibility Checker Add-In".  As you can see a tab called "Excel Services" will appear in the ribbon (may need to restart Excel).  Now you can remove the Unsupported Features by choosing "Quick Fix".  I do suggest creating a copy (back up) of the workbook.  After you have removed the Unsupported Features, republish to the PowerPivot Gallery and run a Scheduled Data Refresh.

     

     

     

    Excel Services Compatibility Checker Add in - Beta

    http://blogs.msdn.com/b/cumgranosalis/archive/2007/06/29/excel-services-compatibility-checker-addin-beta.aspx

     

    Other Resources:

     

    Differences between using a workbook in Excel and Excel Services

    http://office.microsoft.com/en-us/excel-help/differences-between-using-a-workbook-in-excel-and-excel-services-HA010021716.aspx

     

    Excel Services part 12: Unsupported features

    http://blogs.office.com/b/microsoft-excel/archive/2005/12/01/excel-services-part-12-unsupported-features.aspx

     

    Excel Services in SharePoint 2010 Feature Support

    http://blogs.msdn.com/b/excel/archive/2009/11/19/excel-services-in-sharepoint-2010-feature-support.aspx

     

      Edit a workbook that contains features unsupported by Excel Web App

    http://office.microsoft.com/en-us/web-apps-help/edit-a-workbook-that-contains-features-unsupported-by-excel-web-app-HA102540964.aspx

     

    Again, this is somewhat of a generic message, so this may or may not resolve your issue, but it is definitely worth testing.

     

     

    Other FIX: You may also see this error in the ULS logs:

     

    w3wp.exe (0x0A28) 0x0AC8 PowerPivot Service Data Refresh 99 High EXCEPTION: System.InvalidOperationException: Call to Excel Services returned an error. ---> Microsoft.AnalysisServices.SPClient.Interfaces.ExcelServicesException: You don't have permission to save your workbook here. ---> Microsoft.Office.Excel.Server.WebServices.ExcelServerApiException: You don't have permission to save your workbook here.     at Microsoft.Office.Excel.Server.WebServices.ApiShared.ExecuteServerSessionMethod(Boolean hasSessionId, String sessionId, CoreServerSessionMethod coreWebMethod, String name, Boolean skipFeatureCheck)     at Microsoft.Office.Excel.Server.WebServices.ExcelServiceInternal.SaveWorkbookCopy(String sessionId, String workbookPath, WorkbookType workbookType, SaveOptions saveOptions, Status[]& status)     at Microsoft.AnalysisServices.SPClient.ExcelApi.<>c__DisplayClass10.<SaveWorkbookCopy>b__f(ExcelService svc, Status[]& status)     at Microsoft.AnalysisServices.SPClient.ExcelApi.<>c__DisplayClass13.<Call>b__12(ExcelService e, Status[]& status)     at Microsoft.AnalysisServices.SPClient.ExcelApi.Call[T](String fileUrl, ExcelServiceCall`1 serviceCall)     --- End of inner exception stack trace ---     --- End of inner exception stack trace ---     at Microsoft.AnalysisServices.SPClient.ExcelApi.Call[T](String fileUrl, ExcelServiceCall`1 serviceCall)     at Microsoft.AnalysisServices.SPClient.ExcelApi.Call(String fileUrl, ExcelServiceCall serviceCall, String methodName, Object[] parameters)     at Microsoft.AnalysisServices.SPAddin.DataRefresh.DataRefreshService.ProcessingJob(Object parameters)

     

    To fix this, you will need to give the account running PowerPivot Full Control to the Web App under Policy for Web Application.

     

  • PowerPivot Workbooks as a Data Source

    We have been seeing some issues with customers using PowerPivot workbooks as a source file in new Excel PowerPivot files.  There are a variety of errors that can arise from this process, and this blog is intended to provide you with some troubleshooting steps to resolve the issue.

    You may or may not be aware, but it is possible to use a PowerPivot workbook as a data source for other data applications.  For instance, one can use Excel and connect to a PowerPivot file on a SharePoint site as a PowerPivot data source.  There may be a file on SharePoint site named BIFinance.xlsx.  When creating a new PowerPivot workbook, we could specify our data source as the following:

    http://sharepointsite/PowerPivot Gallery/BIFinance.xlsx

    Fig 1: Using PowerPivot workbook as a data source

    In a nutshell, when the data source is the PowerPivot Mid-Tier hosted PowerPivot workbook, the connection goes through a Redirector service on the SharePoint server and is ultimately routed to the SQL Server Analysis Services PowerPivot instance.

    For more information on how to use PowerPivot workbooks as a Data Source, please see the following video:

    Using PowerPivot Workbooks as a Data Source
    http://technet.microsoft.com/en-us/sqlserver/dn151361.aspx

    A few sample errors that may arise when attempting to connect to the PowerPivot workbook as a data source:

    • The following system error occurred: 
    • The following system error occurred: Invalid class string
    • Failed to connect to the server. Reason: No error message available, result code: DB_SEC_E_AUTH_FAILED(0x80040E4D)
    • Unable to connect to data source. Reason: Access denied. You either made a mistake typing in your User ID and/or Password, or you do not have permission to access the database server.

    Possible scenarios that might cause this process to fail:

    1. The SharePoint Web application is setup with Kerberos.  If you are seeing the DB_SEC_E_AUTH_FAILED(0x80040E4D) error, then the web application is more than likely set up with Kerberos. 
      1. Please follow the steps in the following article to resolve the issue.  You will need to modify the web.config file on the web front end servers.
          http://blogs.msdn.com/b/johndesch/archive/2012/04/23/using-powerpivot-workbooks-from-a-mid-tier-server-configured-for-kerberos-authentication.aspx
    2. The client machine making the call does not have updated Microsoft SQL Server Analysis Server OleDB drivers. Please ensure that the Analysis services (SQL_AS_OLEDB) drivers are up to date on the client machine:  You may need to check with your SharePoint administrator to determine what version of PowerPivot is installed in your SharePoint environment.
      1. If using SQL Server 2008 R2 PowerPivot:
          http://www.microsoft.com/en-us/download/details.aspx?id=30440 
      2. If using SQL Server 2012 PowerPivot:
          http://www.microsoft.com/en-us/download/details.aspx?id=35580
    3. Make sure the SharePoint Web application where the workbook is stored does not have multiple bindings in IIS. 
      1. Open IIS on the SharePoint Web Front End servers and select the SharePoint web application and click on Bindings. 
      2. If there is more than one this will fail.  
         
      3. If your web application needs more than one binding, you may extend the web application in SharePoint. Please see the following article on how to extend the web application in SharePoint.
          1. Extend a Web application (SharePoint Server 2010) - http://technet.microsoft.com/en-us/library/cc261698(v=office.14).aspx
    4. The user that is making the connection needs to have limited read access the Root Web application.
    5. If you see this error: "XML parsing failed at line 1, column 1: Incorrect document syntax." Please review the following article:
      1. http://powerpivotgeek.com/2012/06/06/xml-parsing-failed-at-line-1-column-1-incorrect-document-syntax/

    The steps above should resolve most of the errors that are seen when attempting to use a PowerPivot workbook as a data source within Excel PowerPivot.

  • Excel Services - Large Workbook Error

    You may receive one of the following errors when attempting to view an Excel workbook in SharePoint depending on your version of SharePoint:

     

     

    "This workbook is larger than the maximum workbook size allowed to be opened in the browser."

     

     

    "Couldn't Open the Workbook. Wow, That's a big workbook. Unfortunately, we can't open a workbook larger than 10 MB. You'll need to open this in Excel."

     

    The reason for these errors is the size of the workbook that is being opened is larger that the maximum size of a workbook that can be opened in Excel Services. The maximum size can be configured in the Excel Services settings.

    In order to change this value, open SharePoint Central Administration, and go to Application Management > Manage Service Applications > ExcelServiceApp > Trusted File Locations and click on the appropriate Address. Under the Workbook Properties section you will see a Maximum Workbook Size option. Set this value to the required file size in MB, and click OK to save the setting. To avoid the errors above, make sure the value is higher than the largest workbook size in SharePoint.

     

    Another error you may see in SharePoint with large workbooks is the following:

     

    "Sorry, something went wrong. The form submission cannot be processed because it exceeded the maximum length allowed by the Web administrator. Please resubmit the form with less data."

     

    You may encounter the error when you try to publish a large workbook to SharePoint that exceeds SharePoint’s Maximum Upload Size. You can increase this value by going to the following setting in SharePoint Central Administration:

     

    Application Management > Web Applications > Manage web applications > (Choose Web Application) > General Settings > Maximum Upload Size

     

     

     

    Increase the value to a value larger than the size of the workbook causing the error. After saving the value, you should be able to upload the file successfully.

     

    Additional Articles:

    Error "Request timed out" when you try to upload a large file to a document library on a Windows SharePoint Services 3.0 site
    http://support.microsoft.com/kb/925083

    Configure Maximum File Upload Size (PowerPivot for SharePoint)
    http://technet.microsoft.com/en-us/library/ff487972.aspx

    Issues Uploading Large Files To SharePoint
    http://blogs.technet.com/b/praveenh/archive/2012/11/16/issues-with-uploading-large-documents-on-document-library-wss-3-0-amp-moss-2007.aspx

  • Excel Services 2010 & 2013 - Kerberos Configuration

    Configuring Kerberos for Excel Services is a two step process; Information Gathering and Configuration.

    Step 1: Information Gathering:

    1. Account running "Excel Services Application Web Service Application": In this example: ECSSvc.

    Central Administration > Security > Configure service accounts

    2.  Account running "Claims to Windows Token Service":  In this example: Local System.

    Central Administration > Security > Configure service accounts

    3.  Account running the data source you are connecting to:

    SQL:

    Log on to the server running SQL > Start > Run > Services.msc and locate "SQL Server (MSSQLSERVER)", you will see the account in the "Log On As" column. In this example: SQLSvc.

    Analysis Services:

    Log on to the server running SSAS > Start > Run > Services.msc and locate "SQL Server Analysis Services (<Instance>)", you will see the account in the "Log On As".  In this example: SSASSvc.

    Since the "Claims to Windows Token Service" is running as Local System, we need to record the names of the SharePoint Servers running "Excel Calculation Services".  In this example: PRIME13.

    Recap:

    1. Account running "Excel Services Application Web Service Application": ECSSvc
    2. Account running "Claims to Windows Token Service": Local System
    3. Account running "SQL Server (MSSQLSERVER)": SQLSvc
    4. Account running "SQL Server Analysis Services (MSSQLSERVER)": SSASSvc
    5. Name of the SharePoint Server running "Excel Calculation Services".  In this example: PRIME13.

    Important Note:

    If “Excel Services” is running on multiple SharePoint machines and the C2WTS is running as Local System, you will need to Constrain each SharePoint machine (Netbios Name) running “Excel Services” to the backend Service Account(s) (SQLSvc and/or SSASSvc).
    If you are running the C2WTS as a domain account.  For example Contoso\C2WTSSvc, you will only need to Constrain that one account to the backend Service Account(s) (SQLSvc and/or SSASSvc).

    Step 2: Configuration:

    What we need to do now is add the correct Service Principal Name to the Service Accounts running SQL/SSAS and then use Kerberos Constrained Delegation.

    Service Principal Names (SPNs):

    Add these SPNs to the account running the data source your workbook is connecting to.  Either "SQL Server (MSSQLSERVER)" or "SQL Server Analysis Services (<Instance>)":

    Account Running SQL Server (SQLSvc):

    MSSQLSVC/<SQLServer_Name>
    MSSQLSVC/<SQLServer_Name.FQDN

    Example:

    MSSQLSVC/SQLSvr
    MSSQLSVC/SQLSvr.contoso.com

    Account Running SQL Server Analysis Services (SSASSvc):

    MSOLAPSvc.3/<SQL_Server_Analysis_Services_Server_Name>
    MSOLAPSvc.3/<SQL_Server_Analysis_Services_Server_Name.FQDN>

    Example:

    MSOLAPSvc.3/SSASSvr
    MSOLAPSvc.3/SSASSvr.contoso.com

    Important Note:  If Analysis Services has a named instance other than ("MSSQLSERVER)" (this is the default Instance) you will need include that in the Service Principal Name.  In the below example, I will use the instance name "TABULAR".

    MSOLAPSvc.3/<SQL_Server_Analysis_Services_Server_Name:Instance>
    MSOLAPSvc.3/<SQL_Server_Analysis_Services_Server_Name.FQDN:Instance>

    Example:

    MSOLAPSvc.3/SSASSvr:TABULAR
    MSOLAPSvc.3/SSASSvr.contoso.com:TABULAR

    Important Note 2: If the Analysis Services Server has a Named Instance other than (MSSQLSERVER) (which is Default), like "TABULAR".  You will need to add MSOLAPDisco.3 SPNs to the account running the SQL Browser service (Example: Contoso\BrowserSvc). “Disco” is short for “Discovery”.  This needs to be set so the Browser Service can discover SSAS.

    MSOLAPDisco.3/<SQL_Server_Analysis_Services_Server_Name>
    MSOLAPDisco.3/<SQL_Server_Analysis_Services_Server_Name.FQDN>

    Example:

    MSOLAPDisco.3/SSASSvr
    MSOLAPDisco.3/SSASSvr.contoso.com

    Article: More Information regarding the MSOLAPDisco.3 SPNs can be found in the below article:

    An SPN for the SQL Server Browser service is required when you establish a connection to a named instance of SQL Server Analysis Services or of SQL Server
    http://support.microsoft.com/kb/950599

    Kerberos Constrained Delegation (KCD):

    Constrain Delegation between the account running "Excel Calculation Service" and "Claims to Windows Token Service" to "SQL Server" and SQL Server Analysis Services"

    "Excel Services" to SQL:

    In Active Directory Users and Computers > ECSSvc > Properties > Delegation Tab > Trust this computer for delegation to specified services only > Use any authentication protocol > Add… > Users or Computers… > SQLSvc> Check Names > OK > “Select All” Available Services > OK > OK.

    "Excel Services" to "Analysis Services":

    In Active Directory Users and Computers > ECSSvc > Properties > Delegation Tab > Trust this computer for delegation to specified services only > Use any authentication protocol > Add… > Users or Computers… > SSASSvc > Check Names > OK > “Select All” Available Services > OK > OK

    "Claims to Windows Token Service" (if running as Local System): to SQL:

    In Active Directory Users and Computers > PRIME13 > Properties > Delegation Tab > Trust this computer for delegation to specified services only > Use any authentication protocol > Add… > Users or Computers… > SQLSvc > Check Names > OK > “Select All” Available Services > OK > OK.

    "Claims to Windows Token Service" (if running as C2WTSSvc) to SQL:

    In Active Directory Users and Computers > C2WTSSvc > Properties > Delegation Tab > Trust this computer for delegation to specified services only > Use any authentication protocol > Add… > Users or Computers… > SQLSvc > Check Names > OK > “Select All” Available Services > OK > OK.

    "Claims to Windows Token Service" (if running as Local System) to "Analysis Services":

    In Active Directory Users and Computers > PRIME13 > Properties > Delegation Tab > Trust this computer for delegation to specified services only > Use any authentication protocol > Add… > Users or Computers… > SSASSvc > Check Names > OK > “Select All” Available Services > OK > OK

    "Claims to Windows Token Service" (if running as C2WTSSvc) to SQL:

    In Active Directory Users and Computers > C2WTSSvc > Properties > Delegation Tab > Trust this computer for delegation to specified services only > Use any authentication protocol > Add… > Users or Computers… > SSASSvc > Check Names > OK > “Select All” Available Services > OK > OK.

    Please see my Visio Diagram.  It may take a few seconds to load since it is large.

    If this fails please see our other blog:

    Tools and Techniques: Troubleshooting Kerberos in Excel Services and PowerPivot for SharePoint
    http://blogs.technet.com/b/excel_services__powerpivot_for_sharepoint_support_blog/archive/2013/02/08/troubleshooting-kerberos-for-excel-services-and-powerpivot.aspx

  • What is PowerPivot for SharePoint? Part 1.

    I find myself explaining PowerPivot to customers over and over.  Most understand parts of how it works but not the whole story.  I will touch on two parts; PowerPivot for Excel and PowerPivot for SharePoint.

    Part 1: PowerPivot for Excel

    PowerPivot for SharePoint is nothing without the Excel Rich Client and the PowerPivot Add-in.  Pre-Excel 2013, the PowerPivot Add-in was a separate COM Add-in that you had to download.  In Excel 2013, the PowerPivot Add-in ships with the product.

    Before you can do anything in SharePoint, you need to create a PowerPivot workbook in Excel.  To do this, open the PowerPivot tab choose Manage > From Database (choose your datasource, servername and database name).

     

    You (potentially) will be pulling in a large amount of data into Excel.  I have seen people with Excel (PowerPivot) workbooks 1GB in size (which is huge since .xlsx (Open Office XML) files are zipped).  This large amount of data is essentially a database and you can see this in the workbook.  To view the Data Model, rename workbook file extension (.xlsx to .zip), open the workbook > xl > model > item.data

    After you have pulled this data (essentially a database) into the PowerPivot environment, Excel can point to this database and build a PivotTable off it.  In the PowerPivot environment choose PivotTable > PivotTable

    Excel is now pointing at the database (Data Model) embedded inside itself.  You can see for yourself via Excel > Data Connections > Properties.  In SharePoint (when we get there), we will call this the "Refresh in Browser".

    Keep in mind there is still the PowerPivot Connection that can also refresh.  In SharePoint, we will call this the "Scheduled Data Refresh".  You can view this connection in Excel > PowerPivot > Manage > Existing Connections (choose the PowerPivot Data Connection) > Edit > Advanced.

    There is still one more refresh (in SharePoint 2013 & SQL 2012 SP1) called the "Interactive Data Refresh".  I will touch on that later in the "What is PowerPivot for SharePoint?  Part 2".

    At this point, we should have a beautiful Excel (PowerPivot) workbook that has a Pivot Table and Slicers and looks something like the below sample.

    Now that we have a beautiful Excel (PowerPivot) workbook that functions wonderfully in the Excel Rich Client, we are ready to publish this to SharePoint!

    Please see "What is PowerPivot for SharePoint? Part 2".

  • "Cannot convert claims to windows token" "Could not retrieve a valid windows identity " "UPN is required when Kerberos constrained delegation is used"

    For awhile now, we here at PowerPivot for SharePoint Support have seen a variety of Claims Identity/Windows Token/UPN errors.  Primarily with PowerPivot failing to refresh a workbook in the browser.

    But recently, I noticed another product presenting this error.

    In the ULS logs, you will see:

    10/29/2013 10:11:28.57 w3wp.exe (0x1DA4) 0x33F4 SharePoint Foundation Claims Authentication bz7l Medium SPSecurityContext.WindowsIdentity: Could not retrieve a valid windows identity for NTName='Domain\User', UPN='User@Domain.com'. UPN is required when Kerberos constrained delegation is used. Exception: System.ServiceModel.Security.SecurityAccessDeniedException: Access is denied.    Server stack trace:      at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)     at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)     at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)     at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)     at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)    Exception rethrown at [0]:      at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)     at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)     at Microsoft.IdentityModel.WindowsTokenService.S4UClient.IS4UService_dup.UpnLogon(String upn, Int32 pid)     at Microsoft.IdentityModel.WindowsTokenService.S4UClient.<>c__DisplayClass1.<UpnLogon>b__0(IS4UService_dup channel)     at Microsoft.IdentityModel.WindowsTokenService.S4UClient.CallService(Func`2 contractOperation)     at Microsoft.SharePoint.SPSecurityContext.GetWindowsIdentity().

    In the GUI, you will see the error "Cannot convert identity to windows token."

    Resolution:

    Any user that is trying to refresh data, needs to have a check next to Read under Authenticated Users when looking at AD > Security (note: may need to enable Advanced Features under View tab so you can see the Security tab in AD).

     

  • PowerPivot scheduled data refresh from a SharePoint list using OData data feed connection (PowerPivot 2012 SP1 for SharePoint 2013)

    To set up PowerPivot for SharePoint scheduled data refresh for a PowerPivot workbook that has a connection to a SharePoint list in it, you do not need to use a data connection file like a List.atomsvc file (you do not need to use Export as Data Feed).

    Another way that you can set up PowerPivot for SharePoint scheduled data refresh for a PowerPivot workbook that has a connection to a SharePoint list in it, is to make an OData data feed connection directly to the SharePoint list data service (and skip the List.atomsvc file altogether).

    Here are some steps that I used that worked for me (using SharePoint 2013 and PowerPivot for SharePoint 2012 SP1).

     

    Create a new Secure Store Service target application ID

    • make it type Group

    • add the domain group called Domain Users to the Members group for the ID

    • set the ID’s credentials to a domain account and password that for sure has permissions to access the SharePoint list that we will be refreshing from (TIP: to start with, use the domain account and password that you will be logged on with on the machine where you will be launching the Excel client application and creating the Excel workbook in the next steps).

     

     In Central Administration, edit the PowerPivot service application settings and set the PowerPivot Unattended Data Refresh Account to use the Secure Store Service target application ID created above.     

      


    Create a new workbook with Excel 2013, click on the PowerPivot add-in tab at the top, then click Manage on the far left.

     

     

    Then choose From Data Service > From OData Data Feed

     

     

    Then type in the Data Feed Url like this:   http://YourSPservername/_vti_bin/listdata.svc    and then click Next to connect to the service and view the items that appear.

     

     

    Then select your SharePoint list and click Finish then Close.

     

     

    Then set up your workbook the way that you would like.

    For mine, I clicked on the PivotTable button at the top, I chose Existing worksheet, selected a PivotTable field called Value so that my PivotTable had some data, clicked on the Insert tab and added a slicer.

     

     

    Then set the workbook’s connection authentication setting to use the Secure Store Target Application ID created above by going to the Data menu at the top > Connections > Properties > Definition tab > Authentication Settings > select Use a stored account > and type in the name of the ID that you created above.

     

    Then test to make sure that both slicers and manual data refresh (Data > Refresh All Connections) work in the Excel client application, and then save the file to the PowerPivot gallery in SharePoint and open it in the browser by clicking on it.

    Make sure that slicers work in the browser. 

     

     

    Make sure that manual data refresh works in the browser by clicking Data > Refresh All Connections.

     

     

     

    Then manage the data refresh for the workbook by clicking on the calendar icon for the workbook when viewing it in the PowerPivot gallery.

     

     

    Click Enable, click Also refresh as soon as possible, make sure that the setting below called Use the data refresh account configured by the administrator is selected, then click OK.

     

     Then manage the data refresh for the workbook again by clicking on the calendar icon for the workbook again, and then refresh the page a few times using F5 to confirm that the scheduled refresh for the workbook runs and succeeds (refresh can take up to one minute to begin).

     

    Assuming that the rest of your PowerPivot for SharePoint 2013 environment is set up well, PowerPivot scheduled data refresh from a SharePoint list should work in this configuration.

     

     

     

    For steps on how to set up PowerPivot for SharePoint scheduled data refresh using a data connection file like a List.atomsvc file (Export as Data Feed), see:

    Excel Services - Using a SharePoint List as a data source

    http://blogs.technet.com/b/excel_services__powerpivot_for_sharepoint_support_blog/archive/2013/07/11/excel-services-using-a-sharepoint-list-as-a-data-source.aspx

     

     

  • Excel Services 2013 issue with IE 11.0.9600.16438 - UPDATE

    There appears to be an issue with SharePoint 2013 Excel Services when using IE 11 (11.0.9600.16438). 

    As noted in the comments below, the issue is resolved by installing the October 2013 Cumulative Update for SharePoint 2013:

    Description of the SharePoint Server 2013 cumulative update package (SharePoint server-package): October 26, 2013
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;2825647

    See this blog for detail of patch order for Sharepoint server:
    http://blogs.technet.com/b/stefan_gossner/archive/2013/10/26/october-2013-cu-for-sharepoint-2013-has-been-released.aspx

     

    Issue:

    Basically what is happening is that when IE 11 is used with SharePoint 2013 Excel Services, the buttons across the top of the screen do not work (see screenshot.)  The areas outlined in RED do not work correctly.  Regular slicers do work as expected.

     


     
     

    • Slicers/filters still work
    • The buttons work if the workbook is being used in a Excel Web Part
    • Office Web Apps Server 2013 (WAC) is not affected
    • SharePoint 2010 is not affected

     

    Microsoft is currently investigating the issue, but there is a temporary workaround for the issue.   The workaround for this issue at the moment is to set the emulation document mode in Internet Explorer 11 to something other than "Edge (Default)".

     

    To apply the workaround: 

    1. Open IE on the client experiencing the issue
    2. Press F12 on the keyboard to bring up Developer Tools.
    3. Click the emulation icon on the left side and choose anything but “Edge (Default)” for Document Mode


      
      
      
      

    As noted in the comments below, the issue is resolved by installing the October 2013 Cumulative Update for SharePoint 2013:

    Description of the SharePoint Server 2013 cumulative update package (SharePoint server-package): October 26, 2013
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;2825647

    See this blog for detail of patch order for Sharepoint server:
    http://blogs.technet.com/b/stefan_gossner/archive/2013/10/26/october-2013-cu-for-sharepoint-2013-has-been-released.aspx

  • What is PowerPivot for SharePoint? Part 2.

    Now that we have a PowerPivot workbook in the Excel Rich Client, we are ready to publish that workbook to SharePoint.

    In "What is Power Pivot for SharePoint? Part 1" I discussed the Data Model and how it is a database inside of Excel.  When you publish/upload a regular Excel workbook to SharePoint, that file gets chunked up into blobs and stored in the Content Database.  With a PowerPivot workbook the Excel workbook also gets stored in the Content Database, BUT the Data Model gets created and stored (after the initial (successful) refresh in browser) on the server running POWERPIVOT.

    Note: In SharePoint 2010, the Analysis Service POWERPIVOT instance is going to be on a SharePoint server in the farm.  In SharePoint 2013, we recommend using a SQL Server off the farm.  Step by step install instructions here.

    I am now going to touch on the three refreshes of PowerPivot 2013 and how they work.

    1. Browser Refresh

    When you open workbook and click a slicer, you are merely accessing the Data Model.  In other words, (in this example) the PowerPivot workbook stored in a SharePoint Report Library is going our to the SQL Server running PowerPivot > Databases > PowerPivot20Test20Workbook and is pulling whatever data (fresh or stale) that is currently in that cube.

    If you login to SQL Management Studio > Analysis Services > Servername\POWERPIVOT > Databases you will see the Data Model (in this case PowerPivot20Test20Workbook_ae1bfdf63a44395b27a908c0ac0855_1f7abf568bb14cd4bb070b5eb858911c_SSPM):

    Troubleshooting:  I have seen the refresh in browser fail periodically.  This was caused by not having the correct ASOLEDB and ADOMD.Net drivers (located here: for SQL 2008 R2 SP1 & SQL 2012 SP1) on the SharePoint Servers running Excel Services and/or the Claims to Windows Token Service not running on these machines/lacking proper permissions.

    2. Scheduled Data Refresh

    In SharePoint 2010, running the Scheduled Data Refresh is the only way to get fresh data into the PowerPivot workbook (this is designed to run once daily during "after business hours").  A timer job runs, the Data Model is updated with fresh data and workbook is republished back to SharePoint.  When you open the workbook and click on a slicer, the Browser Refresh occurs a you will see data from the time the Scheduled Data Refresh ran (data from the time the Scheduled Data Refresh ran that night).  In 2013, you are not 100% dependent on the "Scheduled Data Refresh" (if your backend data source accepts Windows Credentials; SQL or Analysis Services) to see fresh data.  In 2013, you can use the "Interactive Data Refresh" which I will touch on next.  If you want to refresh from a data source that does not accept Windows Credentials (Oracle, IBM (in some cases) SQL, etc.)  you will need to use the Scheduled Data Refresh in both versions of SharePoint (2010 & 2013).

     

    For this functionality to be present is SharePoint 2013, you need to install the PowerPivot.msi on a SharePoint server.

    Troubleshooting: For detailed instructions on how to set this up please follow this article. For help pulling from a data source that does not accept Windows Credentials, please see our blog.

     3. Interactive Data Refresh

    The "Interactive Data Refresh" is only available in SharePoint 2013.  The "Interactive Data Refresh" passes the SharePoint user's credentials all the way to the backend and pulls real-time data into a PowerPivot workbook.  To do this, you need to choose Data > Refresh All Connections

    You can pull data from a data source that accepts Windows Credentials (SQL & SSAS).  For steps on how to set this up, please see our blog.

     

  • PowerPivot for SharePoint - Gallery Thumbnails Not Rendering

    Many customers have reported after uploading a workbook to the PowerPivot Gallery, the thumbnails are not rendering:

    Snapshots will not work if you have chosen to open the workbooks in the Client application. To remedy this, follow the below instructions:

    To set the default open behavior for site collections

    1. In the SharePoint site collection, click Site Actions, and then click Site Settings.
    2. On the Site Settings page, under Site Collection Administration, click Site Collection Features.
    3. On the Features page, for the Open Documents in Client Applications by Default feature, click Activate (OpenInClient Feature is enabled) to open documents in the client application. Click Deactivate (OpenInClient Feature is disabled) to open documents in the browser.

    To set the default open behavior for a document library by using the document library settings page

    1. On the <document library>: All Documents page, under Library Tools, click Library.
    2. In the library toolbar, click Library Settings.
    3. On the Document Library Settings page, click Advanced Settings.
    4. On the Advanced Settings page, in Opening Document in the Browser, select one of the following options:
      Open in the client application When a user clicks on a document in this library, the document will open in the corresponding client application (if available).
    5. Open in the browser When a user clicks on a document in this library, the document will open in the Web browser Web app for that document type. When the document is opened in the Web app, the user can then decide to open the document in the client application
    6. Use the server default When a user clicks on a document in this library, the document will open by using the default open behavior specified for the server on which SharePoint 2010 Products is installed.

    If the above do not work:

    You need to invoke the Getshapshot.exe (which is located here: C:\inetpub\wwwroot\wss\VirtualDirectories\80\bin>GetSnapshot.exe)

            *Note: Browse to C:\inetpub\wwwroot\wss\VirtualDirectories\80\bin>GetSnapshot.exe and make sure it is 50/56kb.  I have seen instances where is is corrupt 0kb and it needs to be replaced.

    To invoke the Getsnapshot.exe (re-title a workbook) via:

    PowerPivot Gallery > Select a Report > Documents > Edit Properties > Title (give the workbook a title):    

                                               

    If these steps do not remedy this issue, please move onto my next article:

    Invoking and Analyzing the Getsnapshot.exe
    http://blogs.technet.com/b/excel_services__powerpivot_for_sharepoint_support_blog/archive/2012/12/06/invoking-and-analyzing-the-getsnapshot-exe.aspx

     

  • PowerPivot for SharePoint - Schedule Data Refresh Error: "A schedule cannot be enabled for a workbook with no external data sources."

    If you come across this error when trying to perform a scheduled data refresh:

    "A schedule cannot be enabled for a workbook with no external data sources."

    This is because the Data Model cannot be created on the PowerPivot Server.

    Your probably have two questions.

    1. What is a "Data Model".

    The Data Model is a cube created under the PowerPivotServer\POWERPIVOT instance:

    2.Why can't/isn't the Data Model being created?

    The reason why this isn't being created is because there is something wrong with the Excel Services "Data Model Settings".

    You can find this be going to the Central Administration > Application Management > Manage Service Applications > Excel Services > Data Model Settings.

    At this location, you need to enter the proper PowerPivotServer\Instance

    Here is the proper way:

    Here is a bad example (no need to have just the server name present):

    Here is another bad example (PowerPivot) is misspelled:

    I hope this helps.

    Tom

     

     

     

  • PowerPivot for SharePoint - Scheduled Refresh to Oracle, IBMDB2, Teradata, SQL (en-US)

    PowerPivot for SharePoint - Scheduled Refresh to Oracle, IBMDB2, SQL (en-US)

    Here is how to create a Scheduled Refresh to an Database that does not accept domain credentials in PowerPivot:

    Create 2 SSS IDs:

     

    1. PowerPivotDataRefresh

     

    a. Create a SSS application using Group leaving application Page URL to none.

    b. Utilize the Windows Username/Password template.

    c. Setup members that need to access this SSS application ID.

    d. Then set credentials with domain windows credentials.

     

    2. PPIVSSS

     

    a. Create a SSS application using Group leaving application Page URL to none.

    b. Utilize Username/Password for example: (“Oracle Username” “Oracle Password”) template.

    c. Setup members that need to access this SSS application ID.

    d. Then set credentials with Oracle credentials.

     

    On the PowerPivot "Configure Service Application Settings" page, set the "PowerPivot Unattended Data Refresh Account" to PowerPivotDataRefresh.


     

    Browse to the PowerPivot Gallery > Locate the workbook you want to Schedule a Data Refresh for > Click “Manage Data Refresh”:


     

    Under “Data Refresh” tick “Enable”

     

     

    Under “Schedule Details” tick “Also refresh as soon as possible

     

     

    Under Credentials > Select "Use the data refresh account configured by the administrator"

     

     

    Unselect "All Data Sources"

     

     

    (In this case) Select "Custom"

     

    Under "Data Source Schedule:" > Select "Use Default Schedule"

    Under "Data Source Credentials:" > Select "Connect using the credentials saved in the Secure Store Service (SSS) to log on to the data source.  Enter the ID used to look up the credentials in the SSS ID box.”

     

    ID: PPIVSSS

     

     

  • Excel Web Access WebParts fail to refresh in Team Foundation Server Dashboard.

    I have worked with many customers who are seeing refresh failures in the Excel Web Access Web Parts in their TFS Dashboard.

    In most cases, this is caused by not having a Secure Store Service ID set up for Team Foundation Server and that SSS ID has not been added to the Enterprise Application Definition.  Follow the steps below to configure your environment.

    Step One:

    Set up a Secure Store Services ID.  Here are the steps to create a Secure Store Services ID:

    Central Administration > Manage Service Applications > Secure Store Service > New

    Target Application Settings:
    Application ID: tfs
    Display Name: tfs
    Contact E-mail: Administrator
    Target Application Type: Group
    Target Application Page URL: None
    Next

    Field Name: Windows User Name
    Field Type: Windows User Name
    Masked: No

    Field Name: Windows Password
    Field Type: Windows Password
    Masked: Yes
    Next

    Target Application Administrators: Administrator
    Members: example: “SecureStoreUsers” (This will be an AD group that you create.  Many companies will create certain groups for certain resources.  Example: One company may create an Application ID called "SSSAccounting" and have an AD group called "Accounting" that they make a member.)
    Next

    Select the SSS ID "tfs" > Set Credentials:
    Windows Name: (this account needs to have access to the backend data).

    Step Two: Add the Enterprise Application Definition:

    Note:  For all the workbooks to be updated, you need to wait about 30 minutes.  I am not sure what Timer Job runs to update there workbooks.  Here is the best documentation I could find.

    Team Foundation Server Timer Job for SharePoint Products

    Project portals may contain Excel workbooks that have a connection to the Team Foundation Server data stores. The administrator of a Team Foundation Server instance can change the reporting configuration for the instance. For example they could enable/disable reporting, change the location of the SQL Server Analysis Services cube or change the Enterprise Application Definition for sites within a given SharePoint Web application.

    To keep these connections pointing to the correct location or to keep the Excel Services Authentication Settings matching the Enterprise Application Definition, a timer job for SharePoint Products runs on each SharePoint Web application that contains project portals. The timer job periodically scans the portal sites in the Web application and updates the workbook details if it finds that the connection or authentication details have changed.

    If you are adding additional workbooks to a project portal and want their connections to be updated by the timer job then you should place them in the same document library as the Excel workbooks for Team Foundation Server. Note that the name of the connection in the workbook must be "TfsOlapReport" if it is to be updated by the timer job.

    Customizing Team Foundation Server Project Portals
    http://msdn.microsoft.com/en-us/library/ff678492.aspx

  • Excel Services - Query Warning

     

     You may receive the following warning dialog box when opening a workbook using Excel Services in SharePoint:

     

     

    Be careful. This workbook contains one or more queries that might be unsafe. Do you want to enable these queries?

     

    To suppress this and other warnings from Excel Services, go to SharePoint Central Administration > Application Management > Service Applications > Manage service applications > Excel Services application > Trusted File Locations and click on the Address that contains the workbook.

     

     

    In the External Data section, under Warn on Refresh, uncheck Refresh warning enabled and click OK.

     

     

    Users who access the workbook will no longer be presented with a warning dialog box.

     

     

     

     

     

  • Excel Services & F5 - Excel Web Access Web Parts Not Rendering.

    I have worked with several customers who were experiencing strange behavior when viewing a SharePoint Dashboard containing multiple Excel Services Web Parts.

    In one support case, a customer had 16 Excel Web Access Web Parts.  Some users would see all 16 Web Parts and others would only see 15. 

    The question was, "Why do some users see all 16 Excel Web Access Web Parts and others see only 15"?

     

    After many days, we were able to determine (via Fiddler) that the HTTP Header, for some users, exceeded the F5 "Maximum Header Size" threshold.  The reason why this happened for some users and not others, is because when you are using Kerberos, the HTTP Header contains; a Kerberos Token (which contains Active Directory information about this user) and the Header also contains Cookies (each Web Part is a Session).  So, some users had big Kerberos Tokens and the Header reach 32k sooner that others, therefore they were not able to see the 16th Excel Web Access Web Part (Session).

    To fix this, you need to increase the F5 "Maximum Header Size" (we doubled it):

     

    Here is the F5 article explaning this:

     

    Error Message: HTTP header exceeded maximum allowed size of <value>

    http://support.f5.com/kb/en-us/solutions/public/8000/400/sol8482.html

     

    If you want to really investigate the actual token size, you can use this neat tool:

     

    Tool for discovering MaxTokenSize

    http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=1448

     

    Here is the official closing email.  I am including it because we did need to add/modify registry keys.


    Issue:

    ==========

    When viewing a dashboard with 16 “Excel Web Access Web Parts” the following message is thrown by the 16th Web Part:

     

    "An error has occurred trying to perform the requested action. Please try again."

     

     

    Followed by:

     

    "HTTP 400 - Bad Request"

     

     

    Cause:

    ==========

    "HTTP 400 - Bad Request" was caused by Token Bloat.

     

    "An error has occurred trying to perform the requested action. Please try again." was caused by the HTTP Headers growing over 32,768 bytes.  This was caused by a combination the Cookie Collection and the Kerberos Ticket.  F5 was stopping all session once the HTTP Header surpassed 32,768 bytes and the above error was thrown.

     

    Resolution:

    ==========

    The "HTTP 400 - Bad Request" was resolved by the following steps:

     

    Add the below
    RegKeys to the WFE and Application Servers and Reboot:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters\MaxFieldLength

    Decimal

    DWORD: 65534

     

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters\MaxRequestBytes

    Decimal

    DWORD: 16777216

     

    IMPORTANT:
    Changing these registry keys can be considered extremely dangerous. These keys allow larger HTTP packets to be sent to IIS, which in turn may cause Http.sys to use more memory and may increase  vulnerability to malicious attacks.

     

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters\MaxTokenSize

    Decimal

    DWORD: 65535

     

    Adding the below
    Registry Key to the Client & Server and Reboot:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters\MaxPacketSize

    Decimal

    DWORD: 1

     

    "An error has occurred trying to perform the requested action. Please try again." was resolved by increasing the “Maximum Header Size” from 32,768 bytes to 45,600 bytes in F5 (see F5 article sol8482).

     

    Related Knowledgebase Articles:
    ===========================
    Http.sys registry settings for IIS
    http://support.microsoft.com/kb/820129  
     
    New resolution for problems with Kerberos authentication when users belong to many groups
    http://support.microsoft.com/kb/327825  
     
    How to force Kerberos to use TCP instead of UDP in Windows
    http://support.microsoft.com/kb/244474  

    IIS 6.0 MaxFieldLength parameter not set correctly
    http://technet.microsoft.com/en-us/library/aa996475(v=EXCHG.80).aspx

     

    "HTTP 400 - Bad Request (Request Header too long)" error in Internet Information Services (IIS)
    http://support.microsoft.com/kb/2020943

     

     

  • PowerPivot for SharePoint - "An error occurred when loading the Sandbox cube"

    You may receive an error similar to the following when running a scheduled data refresh of a PowerPivot workbook in SharePoint:

    The table with ID of '<TableID>', Name of '<TableName>' referenced by the 'Sandbox' cube, does not exist. An error occurred when loading the Sandbox cube, from the file, '\\?\C:\Program Files\Microsoft SQL Server\MSAS10_50.POWERPIVOT\OLAP\Backup\Sandboxes\PowerPivotServiceApplication\<GUID>.db\Sandbox.9825.cub.xml'.

    You might see this error in the scheduled data refresh results on the PowerPivot Data Refresh History Page. You might also see this error in ULS logs of the SharePoint server running the PowerPivot system service after matching the Correlation ID of a generic error received when trying to view the Manage Data Refresh page for the PowerPivot workbook.

    The error may be the result of a recent SharePoint update which could cause the file store data cache for the PowerPivot cube data to become obsolete.

    The following steps can be used to resolve the error so the scheduled data refresh runs successfully:

    1. Stop the SQL Server PowerPivot System Service on the SharePoint server running the PowerPivot service in SharePoint Central Administration > System Settings > Manage Services on Server.

    2. Rename the following folder (the path may be slightly different on your system depending on the drive where PowerPivot was installed and the name of the PowerPivot service application):

    C:\Microsoft SQL Server\MSAS10_50.POWERPIVOT\OLAP\Backup\Sandboxes\PowerPivotServiceApplication1

    to

    C:\Microsoft SQL Server\MSAS10_50.POWERPIVOT\OLAP\Backup\Sandboxes\PowerPivotServiceApplication1.old

    3. Start the SQL Server PowerPivot System Service in SharePoint Central Administration.

    4. Retest the scheduled data refresh of the PowerPivot workbook.

    5. If the data refresh runs successfully, you can delete the PowerPivotServiceApplication1.old folder.

  • PowerPivot for SharePoint 2010 & SQL 2012 - Refresh in browser fails due to multiple "Process" Data Models in Analysis Services.

     

     

    When opening a workbook after a Schedule Data Refresh, the workbook does not open in Excel Services:

     

     

    This is because after a Scheduled Data Refresh, the “Refresh data when opening the file” is checked.  This is by design, because after a Scheduled Data Refresh, the workbook’s Data Model is updated with new information and the workbook is re-published to the SharePoint Library.  To ensure that you are getting fresh data in the browser, the “Refresh data when opening the file” is checked.  (I will get to the reason why it is spinning later under the Cause section).

     

     

    If we uncheck “Refresh data when opening the file” and open the workbook in the browser, the workbook opens, but if we click on a slicer (a workbook refresh is triggered), the error “Unable to refresh data for a data connection in the workbook.  Try again or contact your system administrator.  The
    following connections failed to refresh: PowerPivot Data”
    is thrown:

     

     

    This is caused by a Bug.  When the Scheduled Data Refresh runs, a Process cube is created under the SharePoint Server running PowerPivot > Analysis Services > PowerPivot Instance > Databases.  The Process cube should be deleted, but it is not.  Therefore many (not sure I can call them “duplicate” since they have a unique GUID so I will use the term “multiple”) “multiple” Data Models are created and not deleted.  When the workbook is refreshed, the workbook looks for the Data Model associated with that workbook under the SharePoint Server running PowerPivot > Analysis Services > PowerPivot Instance > Databases.  As you can see there are many “multiple” Data Models and the workbook refresh either hangs (spinning when using “Refresh data when opening the file”) or fails when clicking on a slicer (error “Unable to refresh data for a data connection in the workbook.  Try again or contact your system administrator.  The following connections failed to refresh: PowerPivot Data).

     

     

    To resolve this, you will need to upgrade all servers running PowerPivot to SQL SP1 (11.0.3000.0) and apply the Cumulative Update 4.

     

    Microsoft® SQL Server® 2012 Service Pack 1 (SP1)
    http://www.microsoft.com/en-us/download/details.aspx?id=35575

    Cumulative update package 4 for SQL Server 2012 SP1
    http://support.microsoft.com/kb/2833645/en-us

    FIX: PowerPivot database is not deleted from SSAS memory when PowerPivot database processing fails
    http://support.microsoft.com/kb/2820918

    The SQL Server 2012 builds that were released after SQL Server 2012 Service Pack 1 was released
    http://support.microsoft.com/kb/2772858

  • Farm Solutions & Excel Services "The Workbook cannot be opened"

    I have seen several customers who have custom farm solutions deployed to their farm (Central Administration > System Settings > Manage farm solutions).  Some of these are for document libraries.  I have noticed the below error several times when opening a workbook from this location(s).

    "Couldn't Open the Workbook

    The workbook cannot be opened"

    From what I have discovered, you need the solution to be installed on the same machine that is running Excel Services.  This currently is design.  It may change in the future. 

    If these Solutions are not on the machine(s) running Excel Services the workbooks will fail to open and you will see the below errors in the ULS Logs:

    01/17/2014 10:47:40.49 w3wp.exe (0x19E8) 0x2B50 SharePoint Foundation Object Cache ai107 Medium Failed on try1 to load XML document at path 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\Template\Features\TeamSite\feature.xml': System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\Template\Features\Site\feature.xml'.     at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)     at 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)     at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)     at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)     at Microsoft.SharePoint.SPXmlDocCache.<>c__DisplayClass2.<GetGlobalXmlDocumentFullPath>b__0() 7b6b3d63-1900-43f6-8ffb-6a7a7b69f0a4

     01/17/2014 10:47:40.49 w3wp.exe (0x19E8) 0x2B50 Excel Services Application Excel Calculation Services tufa Medium SharePointFileLoader.GetSPFile: Sharepoint threw a handled exception - turning it into a FileOpen exception. Exception is: System.ArgumentException: Feature 'b4c5a5b0-514e-4c27-8fd5-d2c323118eac' for list template '101' is not installed in this farm.  The operation could not be completed.     at Microsoft.SharePoint.SPFeatureManager.<>c__DisplayClass19.<GetFeatureRootAndListSchemaPaths>b__18()     at Microsoft.SharePoint.SPSecurity.RunAsUser(SPUserToken userToken, Boolean bResetContext, WaitCallback code, Object param)     at Microsoft.SharePoint.SPFeatureManager.GetFeatureRootAndListSchemaPaths(Byte[]& userToken, Guid& tranLockerId, Int32 nZone, Guid databaseid, Guid siteid, Guid webid, Guid featid, Int32 ltid, String& sPathToFeatureRoot, String& sPathToSchemaXml)     at Microsoft.SharePoint.Library.SPRequestInternalClass.GetListItemDataWithCallback2(IListItemSqlClient pSqlClient, String bstrUrl, String bstrListName, String bstrViewName, String bstrViewXml, SAFEARRAYFLAGS fSafeArrayFlags, ISP2DSafeArrayWriter pSACallback, ISPDataCallback pPagingCallback, ISPDataCallback pPagingPrevCallback, ISPDataCallback pFilterLinkCallback, ISPDataCallback pSchemaCallback, ISPDataCallback pRowCountCallback, Boolean& pbMaximalView)     at Microsoft.SharePoint.Library.SPRequest.GetListItemDataWithCallback2(IListItemSqlClient pSqlClient, String bstrUrl, String bstrListName, String bstrViewName, String bstrViewXml, SAFEARRAYFLAGS fSafeArrayFlags, ISP2DSafeArrayWriter pSACallback, ISPDataCallback pPagingCallback, ISPDataCallback pPagingPrevCallback, ISPDataCallback pFilterLinkCallback, ISPDataCallback pSchemaCallback, ISPDataCallback pRowCountCallback, Boolean& pbMaximalView)     at Microsoft.SharePoint.SPListItemCollection.EnsureListItemsData()     at Microsoft.SharePoint.SPListItemCollection.get_Count()     at Microsoft.SharePoint.SPWeb.GetItem(String strUrl, Boolean bFile, Boolean cacheRowsetAndId, Boolean bDatesInUtc, String[] fields)     at Microsoft.SharePoint.SPFile.get_Item()     at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.GetSPFile(IClaimsIdentity claimsIdentity) 7b6b3d63-1900-43f6-8ffb-6a7a7b69f0a4

    01/17/2014 10:47:40.49 w3wp.exe (0x19E8) 0x2B50 Excel Services Application Excel Calculation Services ecg6 Verbose ExcelServiceBase.PostProcessRequest: Called with ex=Id=GenericFileOpenError; Microsoft.Office.Excel.Server.CalculationServer.FileOpenException: The workbook cannot be opened. ---> Microsoft.Office.Excel.Server.Host.HostFileException ---> System.ArgumentException: Feature 'b4c5a5b0-514e-4c27-8fd5-d2c323118eac' for list template '101' is not installed in this farm.  The operation could not be completed.     at Microsoft.SharePoint.SPFeatureManager.<>c__DisplayClass19.<GetFeatureRootAndListSchemaPaths>b__18()     at Microsoft.SharePoint.SPSecurity.RunAsUser(SPUserToken userToken, Boolean bResetContext, WaitCallback code, Object param)     at Microsoft.SharePoint.SPFeatureManager.GetFeatureRootAndListSchemaPaths(Byte[]& userToken, Guid& tranLockerId, Int32 nZone, Guid databaseid, Guid siteid, Guid webid, Guid featid, Int32 ltid, String& sPathToFeatureRoot, String& sPathToSchemaXml)     at Microsoft.SharePoint.Library.SPRequestInternalClass.GetListItemDataWithCallback2(IListItemSqlClient pSqlClient, String bstrUrl, String bstrListName, String bstrViewName, String bstrViewXml, SAFEARRAYFLAGS fSafeArrayFlags, ISP2DSafeArrayWriter pSACallback, ISPDataCallback pPagingCallback, ISPDataCallback pPagingPrevCallback, ISPDataCallback pFilterLinkCallback, ISPDataCallback pSchemaCallback, ISPDataCallback pRowCountCallback, Boolean& pbMaximalView)     at Microsoft.SharePoint.Library.SPRequest.GetListItemDataWithCallback2(IListItemSqlClient pSqlClient, String bstrUrl, String bstrListName, String bstrViewName, String bstrViewXml, SAFEARRAYFLAGS fSafeArrayFlags, ISP2DSafeArrayWriter pSACallback, ISPDataCallback pPagingCallback, ISPDataCallback pPagingPrevCallback, ISPDataCallback pFilterLinkCallback, ISPDataCallback pSchemaCallback, ISPDataCallback pRowCountCallback, Boolean& pbMaximalView)     at Microsoft.SharePoint.SPListItemCollection.EnsureListItemsData()     at Microsoft.SharePoint.SPListItemCollection.get_Count()     at Microsoft.SharePoint.SPWeb.GetItem(String strUrl, Boolean bFile, Boolean cacheRowsetAndId, Boolean bDatesInUtc, String[] fields)     at Microsoft.SharePoint.SPFile.get_Item()     at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.GetSPFile(IClaimsIdentity claimsIdentity)     --- End of inner exception stack trace ---     at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.GetSPFile(IClaimsIdentity claimsIdentity)     at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.CheckForPermissions(IClaimsIdentity claimsIdentity)     at Microsoft.Office.Excel.Server.MossHost.MossHostHelperMethods.WithEnsureClaimsIdentitySetOnThread(IClaimsIdentity claimsIdentity, MethodToRun action)     at Microsoft.Office.Excel.Server.MossHost.MossHostHelperMethods.TryExecuteWithUserContext(IIdentity userIdentity, Action`1 method)     at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.Init(Uri uri, Guid requestSiteId, IIdentity currentIdentity, ScenarioRestrictions restrictions, IExcelServerDocumentContext documentContext, FileLoaderHostInfo& outFileLoaderHostInfo)     at Microsoft.Office.Excel.Server.CalculationServer.SharePointFileLoader.Init(Uri uri, Guid requestSiteId, ScenarioRestrictions restrictions, IExcelServerDocumentContext documentContext)     --- End of inner exception stack trace ---     at Microsoft.Office.Excel.Server.CalculationServer.SharePointFileLoader.Init(Uri uri, Guid requestSiteId, ScenarioRestrictions restrictions, IExcelServerDocumentContext documentContext)     at Microsoft.Office.Excel.Server.CalculationServer.FileLoader.CreateFromTrustedLocationAndInit(Uri uri, TrustedLocation trustedLocationSettings, Guid requestSiteId, ScenarioRestrictions restrictions, IExcelServerDocumentContext documentContext)     at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbookManager.CreateAndInitFileLoaderForWorkbookLoad(Uri uri, Boolean newWorkbook, TrustedLocation trustedLocationSettings, Guid requestSiteId, ScenarioRestrictions restrictions, IExcelServerDocumentContext documentContext)     at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbookManager.GetBaseWorkbookAndMarkUsedAsync(AsyncHandler`1 callback, Object userState, Request request, Uri uri, Uri uriForKey, Boolean newWorkbook, Boolean useCollection, OpenWorkbookFlags openWorkbookFlags, ScenarioRestrictions restrictions, SessionId previousSessionId, TimeZoneInformation timeZone)     at Microsoft.Office.Excel.Server.CalculationServer.Session.OpenWorkbookAsync(AsyncHandler`1 callback, Object userState, Request request, Uri url, OpenWorkbookFlags openWorkbookFlags, ScenarioRestrictions restrictions, SessionId previousSessionId, TimeZoneInformation timeZoneInfo)     at Microsoft.Office.Excel.Server.CalculationServer.Operations.OpenWorkbookOperation.StartExecution()     at Microsoft.Office.Excel.Server.CalculationServer.Operations.Operation.RunOperationAsync()     at Microsoft.Office.Excel.Server.CalculationServer.Operations.OperationSite.PrepareComplete(PrepareAsyncArgs args) 7b6b3d63-1900-43f6-8ffb-6a7a7b69f0a4