3

I enabled Excel Services and added a Excel Web Access viewer to my page. It's just a simple spreadsheet (which incidentally works fine on my standalone development server) that displays the error "The workbook cannot be opened." when the page loads. The trusted file locations are set up appropriately. We are using Kerberos authentication.

My event viewer showed this "Critical" event (ID: 3760):

SQL Database 'Prod_WSS_Content' on SQL Server instance 'servername' not found. Additional error information from SQL Server is included below.

Cannot open database "Prod_WSS_Content" requested by the login. The login failed. Login failed for user 'domain\user'.

In other words, the service account that ECS was running under did not have permission to the content database. So I granted the user read permission on the database. Then I got the same error and this "Error" level event in the event viewer (ID: 5617):

There is a compatibility range mismatch between the Web server and database "Prod_WSS_Content", and connections to the data have been blocked to due to this incompatibility. This can happen when a content database has not been upgraded to be within the compatibility range of the Web server, or if the database has been upgraded to a higher level than the web server. The Web server and the database must be upgraded to the same version and build level to return to compatibility range.

This error is typically associated with 2007 to 2010 upgrades apparently, but I did a fresh 2010 installation on a pristine machine. I found a very helpful post on the subject on the MSDN blogs: Link

I gave the ECS service account db_owner permission on the content database. I'm still getting the error "The workbook cannot be opened." I ran the PowerShell commands listed at the bottom of the post, and no change.

What's interesting now, is that nothing at all is showing up in the event viewer. I wonder if it is because of the statement in the event log that says "connections to the data have been blocked due to this incompatibility." Is there something on the SharePoint server blocking the connection to SQL Server that needs to be reset?

7 Answers 7

7

Microsoft say you need to give your Excel Services account access to all content databases in the SP2010 Kerberos Guide. You can do this with the following PowerShell instead of manually with SQL Management Studio:

$w = Get-SPWebApplication -Identity http://portal
$w.GrantAccessToProcessIdentity("vmlab\svcExcel")
0
3

http://wellytonian.com/2011/10/excel-workbook-cannot-be-opened-error-%e2%80%93-sharepoint-2010/ Similar issue

I had a similar issue couple of hours before writing this blog post. Simple Doc Lib that wouldnt open Excel Workbook within the Browser. My Google page as usual has turned pink searching for an answer.

The solution was either one of the following

  1. Hotfix missing within your environment. The post has a link to the Hotfix. You would need this no matter what.
  2. The Script helps resolve the permission issue for your Service Application's Service Account to have proper authentication within Content DB on SQL> Ultimately it is giving the service account DBowner status and nothing else :) but we all know how touchy DB Admins are aye :) hence the script.
4
  • Please dont just link to external content. Describe what you think solves the issue and post that in answer, and then link! (external links tend to be short lived) Oct 22, 2011 at 16:53
  • apologies... was my first post here and came here because I had hit that issue 2 hours before it. Whenever I find a solution I tend to blog it so blogged it and put a link here if the issue still existed. Oct 24, 2011 at 8:38
  • Hopefully thats fixed it... this site is cool :) LOL! Oct 24, 2011 at 8:57
  • Downvote removed, upvote added! Welcome aboard @aben :) Oct 24, 2011 at 15:42
1

I had the same error "The workbook cannot be opened." on pretty much a fresh 2010 install too--except i hadn't even configured kerberos or any trusted file location.

All I did was the first thing your links to blogs.msdn.com suggested--to give the account db_owner on the content db (which doesn't seem right, but works).

And from then on the spreadsheet loaded fine, in the doc lib and in the excel web part. I didn't have to reset any services or do any PowerShell. I did close browser session down and open a new one, but that was it.

thanks for the tip. Hope you solved yours.

3
  • Glad it worked for you. Thanks for taking the time to respond.
    – Rob Wilson
    Oct 15, 2010 at 13:43
  • BTW: Kerberos is not required for ECS to work, but it will get you past the "double-hop" problem. If you have an external connection (to a database) in your Excel spreadsheet and try to do a data refresh, it may (more than likely will) error out on you if you are not using kerberos. Just FYI.
    – Rob Wilson
    Oct 26, 2010 at 13:47
  • thanks for that. i've only just recently got familiar with kerberos. it does rock.
    – zee
    Oct 31, 2010 at 21:10
1

Great Article Thanks for posting. Attempt all other options; but finally result into giving the AppsPool account for Excel Web Application Service db Owner of the content database that house the location of the excel spreadsheets.

1

Late post, I know but it might help someone...

After following the above guides I had to remove the Excel Services Application Proxy and the Excel Services Application and recreate them again. After that everything worked.

1
  • I recreated it, but had to grant permissions as per Daniel Butler's answer. Jun 19, 2012 at 13:12
0

I don't know what the magic combination was, but we restarted all the servers (SharePoint and DB) because of a different issue and created a new site collection. ECS works as expected now.

0

All, you do not need to access to the DB, make permissions changes directly.

In Central Admin, select (without clicking it's link) the Excel Web App, within Manage Service Applications. When selected, click 'Administrators' at the top of the page, and add your Service Account there.

This will prevent the error and open the spreadsheet.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.