title: SQL Server Reporting Services: Report Viewer works locally, not on server
body: <p>We are having a problem with SSRS and the Report Viewer.  We are using a simple aspx page to show our reports:</p>
  
  <pre><code>    &lt;%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportView.aspx.cs" Inherits="Estam.Web.ReportView" %&gt;
  
  &lt;%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
      Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %&gt;
  &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
  &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
  &lt;head runat="server"&gt;
      &lt;title&gt;&lt;/title&gt;
  &lt;/head&gt;
  &lt;body style="margin: 0"&gt;
      &lt;form id="form1" runat="server"&gt;
      &lt;rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"
          ProcessingMode="Remote" Width="100%" SizeToReportContent="true" ZoomPercent="100"
          ShowCredentialPrompts="False" ShowParameterPrompts="False" AsyncRendering="False"&gt;
          &lt;ServerReport /&gt;
      &lt;/rsweb:ReportViewer&gt;
      &lt;/form&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  
      using System;
  using System.Configuration;
  using System.Linq;
  using System.Net;
  using System.Security.Principal;
  using System.Web.UI;
  using Microsoft.Reporting.WebForms;
  
  namespace Estam.Web
  {
      public partial class ReportView : Page
      {
          protected void Page_Load(object sender, EventArgs e)
          {
              if(IsPostBack) return;
              ReportViewer1.ServerReport.ReportServerCredentials = new EstamReportServerCredentials();
              ReportViewer1.ServerReport.ReportServerUrl = new Uri(ConfigurationManager.AppSettings["ReportServerUrl"]);
              ReportViewer1.ServerReport.ReportPath = "/tierviewnet/Reports/" + Request.QueryString["report_name"];
              ReportViewer1.ShowParameterPrompts = true;
              ReportViewer1.ServerReport.SetParameters(
                  Request.QueryString.AllKeys
                      .Where(key =&gt; key != "report_name")
                      .Select(key =&gt; new ReportParameter(key, Request.QueryString[key]) {Visible = false})
                  );
          }
  
          private class EstamReportServerCredentials : IReportServerCredentials
          {
              public bool GetFormsCredentials(out Cookie authCookie, out string userName, out string password, out string authority)
              {
                  authCookie = null;
                  userName = null;
                  password = null;
                  authority = null;
  
                  return false;
              }
  
              public WindowsIdentity ImpersonationUser
              {
                  get { return null; }
              }
  
              public ICredentials NetworkCredentials
              {
                  get
                  {
                      return new NetworkCredential(
                          ConfigurationManager.AppSettings["ReportServerUser"],
                          ConfigurationManager.AppSettings["ReportServerPassword"],
                          ConfigurationManager.AppSettings["ReportServerDomain"]);
                  }
              }
          }
      }
  }
  </code></pre>
  
  <p>We're not doing anything crazy here, simply showing a report.  When we run the application locally in the debugger it works fine.  When the application is deployed to IIS, the reports are displayed, but the toolbar doesn't show images and none of the export functionality works.  </p>
  
  <p>Any help with this would be GREATLY appreciated.</p>