Report Manager URL Not Using SSL SSRS 2008 R2

If you’re using SQL Server Reporting Services 2008R2 and have configured it to use SSL but are having issues in Report Manager where the context menus and other links are non-SSL, read on.  Apparently when you follow the simple steps to enable SSL with a certificate that you’ve installed on your Report Manager machine, they don’t point out that you need to remove the the port 80 URL otherwise Report Manager links won’t always be https!  Follow the steps below to fix this issue.

1.  Open the Report Service Configuration Manager.

2.  Go to the Web Service URL tab on the left.  Click the Advanced… button.  Remove the HTTP identity of the report server.  Click OK.

image

After it is removed for the Web Server you should see the following.

image

3.  Now navigate to the Report Manager URL.  Click the Advanced… button.  Remove the HTTP identity of the report server.  Click OK.

image

After it is removed for the Web Server you should see the following.

image

Using SSL and TFS 2010 for Reporting Services All-In-One Install

A current deployment I’m working on for TFS requires that everything use SSL, which includes the TFS part and SQL Reporting Services (SSRS) reports (report manager/report web services).  We are diving into customization on some of the reports and someone mentioned that our Reports folder in Visual Studio has a red X on it (see below).

image

Everything else with regard to TFS was working fine over SSL, we could even access the report manager for SSRS, so I knew it had to be some in TFS that drove Visual Studio and the link in the Team Web Access.  Follow the steps below to fix this predicament.

1.  Log on to your TFS server and open the TFS administration console.
2.  Select the Reporting node in the left navigator

image

3.  Click the Edit link on the right side of the screen.  It will ask if you want to stop the schedule jobs, click OK.  A dialog with 3 tabs will come up.  Select the Reports tab.  In this tab, set the Web Service and the Report Manager to the SSL base URLs that represent your SSRS installation, for example https://tfs.mytfsmachine.com.  Note that once you change the Web Service url you will have to re-enter the data source user’s password.  Once you have update the fields, click OK.  See the image below.

image

4.  Start the jobs again by clicking “Start Jobs” on the right.  You are done.

To check that it all works go into Visual Studio and connect to your TFS server.  The red X should be gone from a team project’s Reports folder.  Also check you Team Web Access (https://{your dns name}/tfs/web/) to make sure that the link to the reports from the web page correctly uses the SSL url.

IIS 7 and Later Application Pool Folder Permissions

The other day I was creating a static web site in Windows 2008R2, and after creating the site I kept getting an access denied.  I scratched my head for a bit as in the past with IIS 6 it usually just worked the first time.  In IIS 7+, the new site will default to creating a new application pool.  Also in the past there were issue with application pools being run under Network Service since this was a built in account.  Now these new application pools run under ApplicationPoolIdentity, but the caveat is that you have to apply folder permissions so that the new application pool can read your web content; this wouldn’t apply if you are running the pool under a dedicated local or AD account.  After searching for a while I found that in order to assign folder permission like you would any other user, you have to use this user name convention "IIS APPPOOL\{YourAppPoolName}” where {YourAppPoolName} is the name of your application pool.  With this information you can go to you folder’s properties and set the permissions accordingly.

Visual Studio XML File Transformation Not Just For Web.Config

Being able to manage environment settings can be such a pain sometimes, especially when your doing it manually.  As of Visual Studio 2010 you are now able to associate environment specific settings based on a build configuration.  Imagine that you have a developement, QA, and production environment each having different database connections strings, log file paths, etc.  It would be nice to set this once and let the build determine the right output for you app.config file, no?  Well this feature is built in to web projects by default, but can be extended to any type of xml file.  There are a few steps to get it working but I will describe them below.  Most of these steps are based on this article XDT (web.config) Transforms in non-web projects which explains the general process and has an example attached.  There are a few items I will discuss which are not included in this article.

Prerequisites

  1. Visual Studio 2010 which has web projects (this conatins the TransfromXml build tasks).
  2. Create a folder %ProgramFiles (x86)%\MSBuild\Custom.  Download TransormFiles.targets and save to this directory with name TransformFiles.targets

Solution

In the solution below I will be use a WebForms project with additional xml files along with the default web.config file, a web.sitemap and a myfile.xml.  My project looks like the image below.

image

1.  Add the <Import> for TranformFiles.targets to you project file. 

Right click on you project and select “Unload project”, project should unload and be grayed out.  Right click again and select “Edit xxx.csproj” where xxx is your project name.  The project file will open and at the end of it put

<Import Project="$(MSBuildExtensionsPath)\Custom\TransformFiles.targets" />

image

2.  Update project file so that non app.config XML files’ (web.config in web project) are nested under the transformed file.  We’ll use the <DebendentUpon> element for each build file. For example a web.sitemap will have a web.release.sitemap if you are transforming you sitemap.

image

3.  Add the <TransormOnBuild> node to any XML file that is not a web.config file, this includes app.config files if you are not using a web project!  You only need to add this node to the files that have transformations applied.  For example, the web.sitemap will get this but the web.release.sitemap won’t.

image

4.  If you are using a web site project add the <CopyToOutputDirectory> to all XML files that will be transformed, other than the web.config file.  This will copy the transformed files to the bin folder of you build since it won’t copy the transformation to the same place as web.config file, unfortunately.  After the build you’ll have to manually copy these to their respective destinations.  Fortunately the output in the bin folder will have all the correct paths for these XML files.

image

imageProject view after steps 2-4

5.  Add the XML transform namespace http://schemas.microsoft.com/XML-Document-Transform to all you transform files.  If it’s a web project, remove the xmlns namespace in the root node of the web.sitemaps; if you don’t the transformation will not work on these files.  See Web.config Transformation Syntax for Web Application Project for the different transformation capabilities.

image

image 

6.  Build you code.  You should now see the transformation you applied.