title: Reporting Services 2008: "HTTP status 401: Unauthorized" Issue
body: <p>I'm getting the error "The request failed with HTTP status 401: Unauthorized" whenever I try to list the reports on my reporting server. The weird thing is, it works when I run the asp.net application on my dev machine hitting the server reporting services web service url (<a href="http://www.example.com/reports/reportservice2005.asmx?wsdl" rel="noreferrer">http://www.example.com/reports/reportservice2005.asmx?wsdl</a>) but when the asp.net app is installed on the server (running iis 7) hitting the same url I get the error. Here's my set up:</p>
  
  <p>Server:</p>
  
  <p>SQL Server Reporting services 2008 (not R2)</p>
  
  <p>Web service url: <a href="http://www.example.com/reports/reportservice2005.asmx?wsdl" rel="noreferrer">http://www.example.com/reports/reportservice2005.asmx?wsdl</a></p>
  
  <p>Client</p>
  
  <p>Created a proxy ReportingServices2005.cs</p>
  
  <p>Web.config has </p>
  
  <p>Code to list reports:</p>
  
  <pre><code>&lt;asp:ListView ID="lvReportList" runat="server"&gt;
  &lt;LayoutTemplate&gt;
      &lt;ul&gt;
          &lt;asp:PlaceHolder runat="server" ID="itemPlaceholder"&gt;&lt;/asp:PlaceHolder&gt;
      &lt;/ul&gt;
  &lt;/LayoutTemplate&gt;
  &lt;ItemTemplate&gt;
      &lt;li&gt;
          &lt;asp:HyperLink runat="server" ID="hpReportLink" NavigateUrl='&lt;%#Eval("Url")%&gt;'&gt;&lt;%#Eval("Name")%&gt;&lt;/asp:HyperLink&gt;
      &lt;/li&gt;
  &lt;/ItemTemplate&gt;
  &lt;EmptyDataTemplate&gt;
      &lt;div&gt;
          No reports to display.
      &lt;/div&gt;
  &lt;/EmptyDataTemplate&gt;
  </code></pre>
  
  <p></p>
  
  <p>Code Behind:</p>
  
  <pre><code>protected void Page_Load(object sender, EventArgs e)
  {
  if (!Page.IsPostBack)
  {
      string rWebServiceUrl = ConfigurationManager.AppSettings["RSWebserviceUrl"];
      string reportServerFolder = ConfigurationManager.AppSettings["ReportServerFolder"];
      string domain = ConfigurationManager.AppSettings["RSDomain"];
      string userName = ConfigurationManager.AppSettings["RSUsername"];
      string password = ConfigurationManager.AppSettings["RSPassword"];
  
      objRS.Url = rWebServiceUrl;
      objRS.Credentials = new NetworkCredential(userName, password, domain);
  
      ReportingServices2005.CatalogItem[] items = objRS.ListChildren(reportServerFolder, false);
  
      var reportList = from p in items
                       select new
                       {
                           Name = p.Name,
                           Url = String.Format("{0}?reportPath={1}/{2}", ReportViewerUrl, reportServerFolder, p.Name)
                       };
  
      lvReportList.DataSource = reportList;
      lvReportList.DataBind();
  
  }
  }
  </code></pre>