Tuesday, March 20, 2012

Authentication errors after backing out changes for forms authentication

We attempted to run the custom authentication sample from the RS samples. We had issues and attempted to "back out" our changes - being stupid, we didn't back up our config files. "How hard could it be?" Well, 8 hours later, we're out of answers as to why we can't run RS anymore. Yes, learn from our mistake.

We're hoping someone can help us with the following.


When going to http://localhost/Reports, I get the following:

System.Web.Services.Protocols.SoapException: Server was unable to process request. > System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.ReportingServices.Diagnostics.ExtensionClassFactory.GetExtensionConfigurationInfo(String extensionType, String extensionName) at Microsoft.ReportingServices.Diagnostics.AuthenticationExtensionFactory.get_AuthenticationExtension() at Microsoft.ReportingServices.WebServer.ReportingService2005..ctor() End of inner exception stack trace


When going to http://localhost/ReportServer, I get a 404.


The log file ReportServerWebApp__01_17_2006_15_33_40 contains the following stack dump:
'
aspnet_wp!ui!1!1/17/2006-15:34:06:: e ERROR: System.Web.Services.Protocols.SoapException: Server was unable to process request. > System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.ReportingServices.Diagnostics.ExtensionClassFactory.GetExtensionConfigurationInfo(String extensionType, String extensionName)
at Microsoft.ReportingServices.Diagnostics.AuthenticationExtensionFactory.get_AuthenticationExtension()
at Microsoft.ReportingServices.WebServer.ReportingService2005..ctor()
End of inner exception stack trace
aspnet_wp!ui!1!1/17/2006-15:34:06:: e ERROR: HTTP status code --> 500
-Details--
System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server was unable to process request. > System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.ReportingServices.Diagnostics.ExtensionClassFactory.GetExtensionConfigurationInfo(String extensionType, String extensionName)
at Microsoft.ReportingServices.Diagnostics.AuthenticationExtensionFactory.get_AuthenticationExtension()
at Microsoft.ReportingServices.WebServer.ReportingService2005..ctor()
End of inner exception stack trace

at Microsoft.SqlServer.ReportingServices2005.RSConnection.GetSecureMethods()

at Microsoft.ReportingServices.UI.Global.RSWebServiceWrapper.GetSecureMethods()

at Microsoft.SqlServer.ReportingServices2005.RSConnection.IsSecureMethod(String methodname)

at Microsoft.SqlServer.ReportingServices2005.RSConnection.ValidateConnection()

at Microsoft.ReportingServices.UI.ReportingPage.EnsureHttpsLevel(HttpsLevel level)

at Microsoft.ReportingServices.UI.ReportingPage.ReportingPage_Init(Object sender, EventArgs args)

at System.EventHandler.Invoke(Object sender, EventArgs e)

at System.Web.UI.Control.OnInit(EventArgs e)

at System.Web.UI.Page.OnInit(EventArgs e)

at System.Web.UI.Control.InitRecursive(Control namingContainer)

at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
aspnet_wp!ui!1!1/17/2006-15:34:06:: 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)

I confirmed that the rsreportserver.config section that deals with security/authentication looks as follows - this matches another server whose RS is working:

<Security>
<Extension Name="Windows" Type="Microsoft.ReportingServices.Authorization.WindowsAuthorization,Microsoft.ReportingServices.Authorization"/>
</Security>
<Authentication>
<Extension Name="Windows" Type="Microsoft.ReportingServices.Authentication.WindowsAuthentication,Microsoft.ReportingServices.Authorization"/>
</Authentication>


And the web.configs in both ReportManager and ReportServer folders reference the correct authentication extension:

Report Manager web.config:
<authentication mode="Windows" />
<identity impersonate="true" />

Report Server web.config:
<authentication mode="Windows" />
<identity impersonate="true" />


At this point, I'm considering spinning up a second instance of RS to see if there's something more basic broken, but I thought I would ask for any help/pointers on this.

Thank you!

Michael Shorten

Just as a followup, in case someone else searches for this problem and finds my post - we never solved it. We recovered the config files to what they were supposed to be, but things never still worked. We now believe that we somehow deleted a file(s) - given the error message, that seems plausible. We ended up having to completely removed SQL Server and RS from our system, physically deleting the MSSQL and MSSQLRS directories and reinstalling. This time, we backed everything up before working on it and of course, it worked.

Michael S

sql

No comments:

Post a Comment