问题概述
我正在支持一个使用Microsoft.ReportViewer库的旧版ASP.NET内部网站应用程序。
运行报告时,会出现以下错误:
在报告处理期间发生错误。
分组“list1_Details_Group”的排序表达式包含错误:
请求类型的权限失败: 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'。
我的所有研究都表明,这个问题是由于应用程序没有必要的信任级别而引起的(所有相关的堆栈溢出问题都通过将信任级别设置为完整来解决),但是我的Web配置文件将信任级别定义为完整,所以我完全不知道为什么会出现这个错误。
由于安全原因,我无法显示所有的Web配置文件,但其中大部分可以在此处找到:http://pastebin.com/GdJhHDhH。任何缺失的内容都已被注释或存根。
可能有用的细节
此问题是在将应用程序从Forms身份验证迁移到Windows身份验证后出现的。虽然不一定相关,但很难忽视这个巧合。
此问题在我的所有环境中都出现:本地、开发和生产环境(将生产环境回退到Forms身份验证可以使其正常工作)。
该应用程序是使用.Net 4、C#编写的。
报告代码位于与Web应用程序不同的程序集中,而Web应用程序引用了报告程序集。
Web应用程序成功地从数据库中检索了其他与报告无关的应用程序区域的数据。
我已经疲惫不堪,任何指导都会很好。
更新:尝试解决方案
尝试删除list1_Details_Group。当这样做时,报告的另一部分会抛出相同的异常。
尝试使用Windows身份验证进行模拟。应用程序继续以相同的方式工作,同时在报告中抛出相同的异常。
尝试为应用程序中使用的所有程序集强制命名。没有应用程序继续以相同的方式工作,同时在报告中抛出相同的异常。
尝试在IIS中使用“Classic”托管管道。