使用简单的RDCL报告时,我在ASP.net Web应用程序上获得白页,而网站的应用程序池中的身份是IIS_IUSRS
的简单Windows用户,但是当我将此简单用户加入本地管理员时分组一切正常!
在两种情况下(admin
和IIS_IUSRS
特权)我都打开了IIS失败的请求跟踪规则,但是我找不到任何拒绝访问或任何提示的问题,
我制作了一个简单的ASP.net
应用程序来解决此问题,并且该应用程序可以使用IIS_IUSRS
特权在所有其他Web服务器上运行,
我正在使用Windows 2016 with IIS 10 ASP.NET 4.6.2
和microsoft report viewer 14.0
并上载了跟踪两个文件夹的Here失败请求
OK-Working-Admin-Privilege
和
Problem-Notworking-IIS_IUSRS-Privilege
但是当我将两个日志相互比较时,几乎没有可疑之处:(
我还使用 Procmon.exe
来查找在获取报告时拒绝了哪种权限,但是结果太吵了:(
我的示例代码是这样的
protected void cmdGetReport_Click(object sender, EventArgs e)
{
DataTable dataSource = new DataTable();
dataSource.Columns.Add("Kind",typeof(int));
dataSource.Columns.Add("LDate", typeof(string));
dataSource.Columns.Add("LSubject", typeof(string));
dataSource.Columns.Add("LNo", typeof(string));
dataSource.Columns.Add("LIID", typeof(int));
dataSource.Columns.Add("Receiver", typeof(string));
dataSource.Columns.Add("SenderTitle", typeof(string));
dataSource.Columns.Add("SIDate", typeof(string));
dataSource.Columns.Add("SVDate", typeof(DateTime));
dataSource.Columns.Add("SFDate", typeof(DateTime));
dataSource.Columns.Add("Comments", typeof(string));
dataSource.Columns.Add("LID", typeof(int));
dataSource.Columns.Add("PIID", typeof(int));
dataSource.Columns.Add("Flag", typeof(int));
for (int i = 0; i < 901; i++)
{
dataSource.Rows.Add(
56,
"Date",
"aString1",
"aString2",
56456,
"aString3",
"aString4",
"aDate3",
"aDate2",
"aDate1",
"aString7",
145,
3454,
3445
);
}
ReportViewerControl.LocalReport.ReportPath = "LTrace.rdlc";
ReportViewerControl.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dataSource));
ReportViewerControl.LocalReport.Refresh();
}