首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请求失败,HTTP状态401:未经授权

问请求失败,HTTP状态401:未经授权
EN

Stack Overflow用户
提问于 2019-06-20 13:55:24
回答 1查看 790关注 0票数 0

当我在本地主机上使用相同的凭据运行代码时,它正常工作,但是当我将它部署到服务器时,它会给我以下错误:

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

我尝试过为特定用户报表服务器访问报表服务器的权限: url在服务器和本地主机中分别工作,两者都具有相同的凭据,也尝试了<identity impersonate="true"/>,但没有成功,我的代码如下:

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

发布于 2019-06-20 13:56:31

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56687580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档