Tuesday, March 27, 2012

Forms Authentication Resulting in Blank Screen after a few minutes.

Hi – I hope someone can help,

I have developed a custom authentication extension to Reporting Services 2005, using Visual Studio 2005 C#.

In local integration tests the extension behaved as expected, honouring the role based security of our main system. Following the deployment steps laid out from numerous sources all worked perfectly. We were optimistic.

I've since deployed to a 'live' user acceptance staging server, using the same procedures used in Integration and it's behaving incorrectly.

Initially the log in page is displayed as expected, at this point SQL dumps occur in the RS Log directory, the same as is seen here: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1750128&SiteID=1


Hopefully there'll be a resolution to that soon. As described in that topic, the main page of Report Manager appears.

After this it all goes wrong.

Sometimes we can browse to a folder and run a report. But after running the report, trying to run something else, or browse back to the containing folder we are presented with the error page with the message:

The permissions granted to user '' are insufficient for performing this operation.

Clicking on the home link brings up the top title and nothing else and you have no option but to close the site and re-login.

Sometimes you get the above message before you can even run a report. The error logs have the message listed at the end of this post.

Other times you log in to the website and the folders don't even appear, just the top title bar.

I have since added some verbose logging in each of the implemented methods in the extension DLL. The permission checking method return true and all the various data in each method appears as expected.

I have checked, checked again and re-checked all the configuration files, they match the local Integration files, barring the machine specific keys etc, they weren't just overwritten.

The location of the log directory where my internal logs are written is read from the configuration files via the SetConfiguration methods, if that wasn't set correctly then there wouldn't be any logs at all, so the configuration is being read correctly by the extension.

One other think that I've noticed is that the back door user that is configured in the config files works perfectly, but I can't see how this can make any sort of a difference as it returns the same result in the extension DLL as a 'normal' user does at the same point in the code.

Can someone please help me, and my poor scalp, it's losing hair at a rate of knots.

Set up:

Windows Server 2005

SQL Server 2005 Service Pack 2 (Developer)

IIS 6

Error message in the log files:

w3wp!library!1!27/06/2007-10:04:20:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user '' are insufficient for performing this operation., ;
Info: Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user '' are insufficient for performing this operation.

w3wp!ui!1!27/06/2007-10:04:20:: e ERROR: The permissions granted to user '' are insufficient for performing this operation.

w3wp!ui!1!27/06/2007-10:04:20:: e ERROR: HTTP status code --> 500

-Details--

Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user '' are insufficient for performing this operation.

w3wp!ui!1!27/06/2007-10:04:20:: e ERROR: Exception in ShowErrorPage: System.Threading.ThreadAbortException: Thread was being aborted.

at System.Threading.Thread.AbortInternal()

at System.Threading.Thread.Abort(Object stateInfo)

at System.Web.HttpResponse.End()

at System.Web.HttpServerUtility.Transfer(String path, Boolean preserveForm)

at Microsoft.ReportingServices.UI.ReportingPage.ShowErrorPage(String errMsg) at at System.Threading.Thread.AbortInternal()

at System.Threading.Thread.Abort(Object stateInfo)

at System.Web.HttpResponse.End()

at System.Web.HttpServerUtility.Transfer(String path, Boolean preserveForm)

at Microsoft.ReportingServices.UI.ReportingPage.ShowErrorPage(String errMsg)

Additionally, once I get the error message above, and nothing is displayed apart from the headline bar, If I browse to the ReportServer web-service, in the same session, it works perfectly.

This is terribly frustrating.
|||*bump*

Any Ideas?
|||*re bump*

No comments:

Post a Comment