我花了很多时间试图解决这个问题,但没有运气 - 所以我会尝试在这里发布问题。
我在同一台服务器上运行2个ASP.NET网站。这两个网站都在IIS 7.5 + .NET 4上运行。这些站点使用SSRS报告查看器显示来自另一台服务器的报告。
我们最近将网站和RS移动到新服务器(从RS 2005切换到RS 2008并从IIS 7.0切换到IIS 7.5)。但是,移动到新服务器后,其中一个网站无法查看报告服务,因为我们收到以下错误:
request failed with HTTP status 401
奇怪的是,报告查看器在两个网站中以相同的方式配置完全(只需复制粘贴在两个网站之间)。此外,使用“工作网站”,我们可以查看属于这两个网站的报告 - 使用其他网站,我们无法查看任何报告。
在两种情况下授权都是这样的:
凭证:
[Serializable]
public sealed class ReportServerCreditentials : IReportServerCredentials
{
public WindowsIdentity ImpersonationUser
{
get { return null; }
}
public ICredentials NetworkCredentials
{
get
{
string userName = ConfigurationManager.AppSettings["ReportViewerUser"];
string password = ConfigurationManager.AppSettings["ReportViewerPassword"];
string domain = ConfigurationManager.AppSettings["ReportViewerDomain"];
return new NetworkCredential(userName, password, domain);
}
}
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 partial class ReportServicesViewer : System.Web.UI.Page
{
protected void Page_Init(object sender, EventArgs e)
{
if (!IsPostBack)
{
string reportingFolder = ConfigurationManager.AppSettings["ReportingFolder"];
showReport(string.Format("/{0}/{1}", reportingFolder, Request.QueryString["report"]));
}
}
private void showReport(string reportPath)
{
RevReport.ServerReport.ReportServerUrl = new Uri(ConfigurationManager.AppSettings["ReportServer"]);
RevReport.ServerReport.ReportServerCredentials = new ReportServerCreditentials();
RevReport.ServerReport.ReportPath = reportPath;
}
}
在aspx中:
<rsweb:ReportViewer ID="RevReport" runat="server" Height="100%" Width="100%" Font-Names="Verdana" Font-Size="8pt" ProcessingMode="Remote" ZoomMode="Percent" ZoomPercent="100"></rsweb:ReportViewer>
其他观察
有一次,我们尝试使用Fiddler来监控网站和RS之间的流量,但在这种情况下,沟通实际上是有效的。
然而,当我稍后尝试这个时,Fiddler给出了以下回应:
[Fiddler] The socket connection to <servername> failed. <br />ErrorCode: 10061. <br />No connection could be made because the target machine actively refused it 10.0.0.17:443
我不确定如何解释这一点,因为我们没有在网站上使用SSL&lt; - &gt; RS通讯。
任何建议都将不胜感激。
答案 0 :(得分:1)
我们在构建新的SSRS服务器时遇到了类似的问题。 Web应用程序无法连接到报表服务器。我能够通过这样做解决问题: