I have an ASP web application that executes MDX queries using SSAS. I have started getting the following error on some queries.
File system error: The record ID is incorrect. Physical file: \?\C:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP\Temp\NLevelDecodeStore_{E81C53D3-9A74-11E1-B75A-00155D1E7701}.tmp. Logical file: .
It's strange that it's only started happening now as I have never had the problem before. The error also only occurs under my web application, if I run it under SSMS the query returns with the results immediately.
The web application runs under the Network Service account, so thinking it could be a security issue I tried running the app under an administrator account and the query completed successfully. I also found that if I add the Network Service account to the list of Server Administrators (right-click on the server in SSMS, properties, and then the security tab) then the query will also complete. I'd rather not do either of these however due security risks.
Edit: The problem with the above solution is that SSAS role security is not applied to server administrators.
The problem turned out that I was in some instances I was using a Dimension Data allowed member set expression of
[Customer].[Customer].AllMembers
The AllMembers function includes calculated members which was what caused the seemingly unrelated error. Changing to .Members to exclude calc members solved the problem.