Asp.net “接收”;未经授权(401)“;HttpWebRequest到SSRS 2008中出错

Asp.net “接收”;未经授权(401)“;HttpWebRequest到SSRS 2008中出错,asp.net,httpwebrequest,ssrs-2008,Asp.net,Httpwebrequest,Ssrs 2008,我使用HttpWebRequest以编程方式导出PDF格式的SSRS2008报告。然而,我的问题是,我的网络凭据似乎不起作用。我在尝试访问SSR时收到未经授权的(401)错误 我知道我提供的网络凭据是正确的。如果我手动登录到我们的SSRSWeb服务,这些就是我使用的凭据。此外,这在本地运行良好,只是在我们的服务器上不起作用 该报告在我们的asp.net 4.0网站上运行。当用户单击“生成报告”按钮时,将执行以下代码(错误发生在我的第2行WebRequest.Create上)以尝试连接到我的SSR

我使用HttpWebRequest以编程方式导出PDF格式的SSRS2008报告。然而,我的问题是,我的网络凭据似乎不起作用。我在尝试访问SSR时收到未经授权的(401)错误

我知道我提供的网络凭据是正确的。如果我手动登录到我们的SSRSWeb服务,这些就是我使用的凭据。此外,这在本地运行良好,只是在我们的服务器上不起作用

该报告在我们的asp.net 4.0网站上运行。当用户单击“生成报告”按钮时,将执行以下代码(错误发生在我的第2行WebRequest.Create上)以尝试连接到我的SSRS 2008:

string sTargetURL = "MY_REPORT_SERVER?/REPORT_NAME&rs:format=pdf&rs:command=render&rc:parameters=Collapsed";

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sTargetURL);
req.PreAuthenticate = true;

 req.Credentials = new NetworkCredential("Username", "Password", "Domain");

  HttpWebResponse HttpWResp = (HttpWebResponse)req.GetResponse();
  Stream fStream = HttpWResp.GetResponseStream();

 byte[] fileBytes = ReadFully(fStream);
 HttpWResp.Close();

 System.Web.HttpContext.Current.Response.Clear();
 System.Web.HttpContext.Current.Response.ContentType = "application/pdf";

 System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=\"" + reportName + ".pdf"\"");
 System.Web.HttpContext.Current.Response.BinaryWrite(fileBytes);
 System.Web.HttpContext.Current.Response.Flush();
 System.Web.HttpContext.Current.Response.End();

在应用程序外部,您是否能够在本地和报表管理器/服务器中运行报表?如果是,报告使用哪种类型的数据源?可能是数据源不接受来自报表服务器的凭据。您可能需要创建具有必要读取权限的域帐户,并在报表服务器上配置数据源以模拟这些凭据