Mysterious HTTP Authentication Required for Reports

A few weeks ago we had a very odd problem our LANDBOSS nightly build site.  Every time we tried to access the reports it would asks us for authentication.  This would be the HTTP authentication request that shows the browser's standard login message box, not any custom LANDBOSS login page or anything.  At first we thought it might be an ASP.NET or IIS issue, and I spent almost half a day fooling with folder permissions for the site.  Nothing worked.

If you entered a valid user/pass into the HTTP authentication request, then you would receive an error for the LANDBOSS page you were trying to access.  The .aspx file was plainly there.  The clue, it turns out, was in the error page that showed the message "Error in the '/reports' application."  /reports application?  That sounds like a virtual directory!  I checked IIS again.  No, there were no virtual directories for /reports.

I ran through every application that was installed on the server and eventually found the problem.  MS SQL Server Reporting Service apparently listens on port 80 for /reports, but was not listed in IIS. Wow.  We weren't actually using reporting services on this machine, so I just disabled the service and our authentication prompt magically went away.

So there's the technical explanation, now a little rant.  While I understand the theoretical convenience of being able to say /reports of any server to get reports of the databases on it, having an application silently listen on port 80 is very dumb.  I would think it's pretty common for devs to have both SQL Server and a web server installed on the same machine.  Does Microsoft really expect all of them to be inately aware of reporting service's behavior?

Maybe the lesson here is never install something you don't need on a machine.  Maybe it's that you should take the initiative to inform users that your application acts as its own web server.  Either way, if you ever run into any problems with a web server when dealing with /reports then I would probably check for an SQL Server installation first thing.

More from the Author

Blake Anderton

Software Architect