Like most 1.0 releases from Microsoft, Reporting Services provides a wealth
of useful features that leave us wondering how we ever got along without them.
Unfortunately, like other 1.0 releases, there are a few glitches that make life
just a little difficult for early adopters.
The first glitch you’re likely to encounter occurs during install. Reporting
Services uses two Internet Information Server (IIS) Virtual Directories. Currently,
these directories can be installed only in the "Default Web Site" site; there
is no mechanism in the setup program to change the target Web site. This article
will discuss how to move the directories after install to whichever Web site
you’d like.
The Problem
Although some portions of the Reporting Services documentation imply that setup
will install the two Virtual Directories to whichever Web site is accessible
as http://localhost or http://<servername>, you will receive an error
message during setup that IIS is not configured correctly if "Default Web Site"
is not available, as shown in FIGURE 1. "Default Web Site" is the Web site that
is installed with IIS (along with "Administration Web Site", if you’re using
IIS 5.0). Understandably, most people disable the default site after installing
IIS.
FIGURE 1: The error message
Even if you have enabled another site to be accessible as http://localhost
or http://<servername>, setup will not recognize that site and will return
the error shown in FIGURE 1.
The Solution
There is a simple five step solution to this problem. First, enable "Default
Web Site" and ensure it is accessible as http://localhost or http://<servername>.
If you have another site that is already accessible as http://localhost or http://<servername>,
simply stop that site until you have finished the Reporting Services install
(the install takes only a few minutes). You can stop the "Default Web Site"
and restart your site once setup is complete (you do not need to complete all
the steps in this article before re-enabling your site).
The second step is to install Reporting Services. Configure it however you
like, but for the examples in this article we’ll assume you accepted any defaults.
Next, create two Virtual Directories in the site you want to use for Reporting
Services. These directories must have the same names that you chose during the
Reporting Services install. By default, they will be named ReportServer
and Reports.
Now, configure the two Virtual Directories in your site to have the same settings
as the two Virtual Directories the Reporting Services setup created in "Default
Web Site". (We’ll see the details of this fourth step in the next section.)
Finally, ensure that your site is accessible as http://localhost or http://<servername>.
Configuring the Reports Virtual Directory
The fourth step, configuring the new Virtual Directories to be identical to
the original Virtual Directories, is the only complicated part of this solution.
In fact, it’s easy to do, but it’s also easy to miss a step. The following directions
should help you avoid any mistakes. (All instructions below assume you installed
Reporting Services using any defaults provided. If you did not, simply make
substitutions as appropriate.)
First, in IIS open the Property window for the "Reports" Virtual Directory in the "Default Web Site" site (right-click and select Properties). Highlight and copy the "Local path" value on the Virtual Directory tab (by default, this will be "c:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportManager").
Right-click your new Web site, select New, and then select Virtual Directory.
When the New Virtual Directory Wizard prompts for the Alias, type Reports.
For the Path, paste in the value you copied from "Default Web Site". We will
change the permissions later so just accept the default permissions the Wizard
supplies.
Repeat the above steps for the "ReportServer" Virtual Directory. Copy the path ("c:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer" by default) and paste it into the Wizard. Again, do not be concerned with the permissions.
Now for the tedious part. Open the Property window for the "Reports" Virtual
Directory in the "Default Web Site" site. Leave that Property window open, and
open the Property window for the "Reports" Virtual Directory of your new site.
Arrange the windows side-by-side, but be sure you know which window is from
the default site and which is from your new site (I simply put the default site’s
window on the left, and the new site’s window on the right). You can now see
both configurations simultaneously. You’ll simply adjust the new site’s properties
to match the default site’s properties.
The first difference you’ll notice is on the Virtual Directories tab. Change
the Application Name from "Reports" to "Report Server Interface". Also, change
the Execute Permissions from "Scripts Only" to "Scripts and Executables".
On the Documents tab, remove all default documents and add "Home.aspx" as a
Default Document. On the Directory Security tab, Authentication and Access Control,
Edit button, deselect the "Enable Anonymous Access" check box.
If you’re using IIS 6.0, on the HTTP Headers tab, add "MicrosoftOfficeWebServer"
as a Custom Header Name with "5.0_Pub" as the Custom Header Value. If you’re
using IIS 5.0, you do not need to do this step.
Configuring the ReportServer Virtual Directory
Now, you’re ready to configure the ReportServer Virtual Directory. The steps
are almost exactly the same, with just a few minor changes and one important
additional step.
On the Virtual Directories tab, change the Application Name from "ReportServer"
to "Report Server". Also, change the Execute Permissions from "Scripts Only"
to "None".
The additional step is to click the Configuration button on the Virtual Directories
tab (do this only for the ReportServer Virtual Directory, not the Reports Virtual
Directory). In IIS 6.0, on the Mappings tab, remove all existing Application
Extensions and add a Wildcard Application Map of "c:\winnt\microsoft.net\framework\v1.1.4322\aspnet_isapi.dll"
(it is best to copy this from the default site’s properties). In IIS 5.0, remove
all Application Mappings and add an Application Map with Executable set to "c:\winnt\microsoft.net\framework\v1.1.4322\aspnet_isapi.dll",
Extension set to "*", Verbs set to "All Verbs", and ensure the Script Engine
check box is selected.
On the Documents tab, add "iisstart.htm" as a Default Document. On the Directory
Security tab, Authentication and Access Control, Edit button, deselect the "Enable
Anonymous Access" check box. You’ll have difficulty deploying reports if anonymous
access is permitted.
If you’re using IIS 6.0, on the HTTP Headers tab, add "MicrosoftOfficeWebServer"
as a Custom Header Name with "5.0_Pub" as the Custom Header Value. If you’re
using IIS 5.0, you do not need to do this step.
The following table summarizes the changes you should have made:
|
|
|
|
| Reports Virtual Directory |
|
|
Virtual Directory Tab
|
Local Path
|
Copy from Default Web Site
|
|
|
|
Application Name
|
Report Server Interface
|
|
|
|
Execute Permissions
|
Scripts and Executables
|
|
|
Documents Tab
|
Default Documents
|
Remove all existing documents. Add "Home.aspx".
|
|
|
Directory Security Tab
|
Authentication and Access Control: Edit Button
|
Deselect the "Enable Anonymous Access" check box. |
|
|
HTTP Headers Tab
|
Custom Header
|
IIS 6.0 only: Add "MicrosoftOfficeWebServer" as a Custom Header Name with "5.0_Pub" as the Customer Header Value.
|
| ReportServer Virtual Directory
|
|
|
Virtual Directory Tab
|
Local Path
|
Copy from Default Web Site
|
|
|
|
Application Name
|
Report Server
|
|
|
|
Execute Permissions
|
None
|
|
|
Configuration button
|
Default Documents
|
IIS 6.0: Remove all existing Application Extensions. Add a Wildcard Application Map (copy from Default Web Site).
|
|
|
|
|
IIS 5.0: Remove all existing Application Mappings. Add an
Application Map (Executable copied from Default Web Site, Extension = "*",
Verbs = "All Verbs", Script Engine check box is selected). |
|
|
Documents Tab
|
Default Documents
|
Add "iisstart.htm".
|
|
|
Directory Security Tab
|
Authentication and Access Control: Edit Button
|
Deselect the "Enable Anonymous Access" check box. |
|
|
HTTP Headers Tab
|
Custom Header
|
IIS 6.0 only: Add "MicrosoftOfficeWebServer" as a Custom Header Name with "5.0_Pub" as the Customer Header Value.
|
One final step is necessary if you’re creating a new site that doesn’t yet
have the "aspnet_client" folder in the root of the new site. You’ll receive
the error message displayed in FIGURE 2 when you attempt to access the Reports
Virtual Directory through your browser. To copy the "aspnet_client" folder into
your new site, use a command similar to xcopy c:\Inetpub\wwwroot\aspnet_client
d:\MySite\wwwroot\aspnet_client /s /e /i /k /h /o /x. This xcopy command
will copy the "aspnet_client" folder, subfolders, and NTFS permissions.
FIGURE 2: Make sure to create an aspnet_client folder; you'll receive this
error if you don't.
Conclusion
One of the biggest complaints about Reporting Services is the inability to
install it to the Web site of your choice. With the help of this article, this
limitation can easily be overcome.