【问题标题】:Error The request failed with HTTP status 401: Unauthorized错误请求失败,HTTP 状态 401:未经授权
【发布时间】:2019-06-20 13:55:24
【问题描述】:

当我使用与 localhost 相同的凭据运行代码时,它可以正常工作,但是当我将它部署到服务器时,它给了我以下错误:

请求失败,HTTP 状态为 401:未授权。

我已尝试为特定用户报告服务器的权限报告服务器 url 在服务器和本地主机中分别使用相同的凭据也尝试<identity impersonate="true"/> 但没有运气,我的代码如下:

string UserName = System.Configuration.ConfigurationManager.AppSettings["SsrsUserName"];
//added by nilesh
string Password = System.Configuration.ConfigurationManager.AppSettings["SsrsPassword"];
//added by nilesh
//   string ReportUrl = System.Configuration.ConfigurationManager.AppSettings["MileageReport"];
//added by nilesh
// string ReportServer = System.Configuration.ConfigurationManager.AppSettings["ReportServer"];

string folder = System.Configuration.ConfigurationManager.ConnectionStrings["rptfolder"].ProviderName;
string reportURL = "";
reportURL = System.Configuration.ConfigurationManager.ConnectionStrings["rpturl"].ProviderName;

ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
ReportViewer1.ServerReport.ReportServerUrl = new Uri(reportURL);
ReportViewer1.ServerReport.ReportPath = folder + "MileageReport";
//ReportViewer1.ServerReport.ReportPath = folder + "testReport";
//added by nilesh
IReportServerCredentials irsc = new ReportCredentials(UserName, Password, System.Configuration.ConfigurationManager.ConnectionStrings["domain"].ProviderName);
ReportViewer1.ServerReport.ReportServerCredentials = irsc;
// bool isauthenticated = ReportViewer1.ServerReport.ReportServerCredentials.ImpersonationUser.IsAuthenticated;
UserDataClass.LogError(userData.userId, "Not Error " + " UserName " + UserName + " Password " + Password + " Domain " +               System.Configuration.ConfigurationManager.ConnectionStrings["domain"].ProviderName + " ReportPath " + ReportViewer1.ServerReport.ReportPath + " reportURL " + ReportViewer1.ServerReport.ReportServerUrl );
//                ReportViewer1.ServerReport.ReportServerCredentials = new ReportServerNetworkCredentials();
ReportParameterInfoCollection pInfo = default(ReportParameterInfoCollection);
System.Collections.Generic.List<ReportParameter> paramList = new System.Collections.Generic.List<ReportParameter>();
paramList.Add(new ReportParameter("StartDate", startDate.ToString("dd-MMM-yyyy"), false));
paramList.Add(new ReportParameter("EndDate", endDate.ToString("dd-MMM-yyyy"), false));
paramList.Add(new ReportParameter("DeviceId", "ALL", false));
paramList.Add(new ReportParameter("DQCustId", Convert.ToString(userData.customerId), false));
paramList.Add(new ReportParameter("UserId", Convert.ToString(userData.userId), false));
ReportViewer1.ServerReport.SetParameters(paramList);
pInfo = ReportViewer1.ServerReport.GetParameters();
//   ReportViewer1.ShowParameterPrompts = false;
ReportViewer1.ServerReport.Refresh();

【问题讨论】:

    标签: c# reporting-services


    【解决方案1】:

    Ssrs 服务器配置的发现 错误 请求失败,HTTP 状态为 401:未经授权。 这个错误意味着如果你使用正确的凭证,那么报告 url 是错误的,它不会返回任何东西。 基本上我们可以使用 ssrs 作为本地服务器和远程服务器,如果我们使用本地,那么我们可以很容易地在我们的项目中提供 rdlc 的路径,但是如果我们使用远程服务器设置来设置 ssrs,那么我们需要提供报告服务器 url 和域名验证。 如果我们正在配置远程服务器报告,那么报告需要窗口凭据,所以首先请检查并确认凭据(用户名和密码)。 然后您需要确认域名必须与报告服务网址中提到的相同 http://dqgpsnew/ReportServer 这里的 dqgpsnew 是域名,所以在报告服务器 url 中,网络凭据的域名应该是相同的“dqgpsnew” 如果您从本地主机请求它,则将其替换为 IP 地址 dqgpsnew 到 13.90.150.102 和报告服务器 url,如 http://13.90.150.102:80/ReportServer 如果我们不替换它,那么它将给出“无法解析远程名称:'dqgpsnew'”

    【讨论】:

      猜你喜欢
      • 2013-01-01
      • 1970-01-01
      • 2012-06-30
      • 2012-11-27
      • 2011-03-18
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多