我已成功添加了一个自定义程序集,并使用AddTrustedCodeModuleInCurrentAppDomain
将其添加到报表中。我正在当前应用程序域中执行该报表。
当我尝试访问 SQL 时,我会遇到报告服务System.Data.SqlClient.SqlClientPermission failed.
的问题。我尝试像上面那样将System.Data
添加到可信程序集中,但没有帮助。
我如何确保拥有这个权限?
我已成功添加了一个自定义程序集,并使用AddTrustedCodeModuleInCurrentAppDomain
将其添加到报表中。我正在当前应用程序域中执行该报表。
当我尝试访问 SQL 时,我会遇到报告服务System.Data.SqlClient.SqlClientPermission failed.
的问题。我尝试像上面那样将System.Data
添加到可信程序集中,但没有帮助。
我如何确保拥有这个权限?
从错误信息来看,您的登录凭据似乎丢失了。您使用的是什么类型的授权方式?
如果您使用的是 Windows 授权,可能会丢失您的 "you"ness。由于您正在从当前应用程序域中调用,这听起来不太可能。您可以尝试更改连接字符串以指定用户名和密码。无论如何,这都应该有助于调试。
祝您好运!
这个有办法了吗?
我正在使用Visual Studio 2008中的ReportViewer控件,在本地模式下使用对象作为数据源。我的类映射到数据库中的数据表中。在对象中,它会根据需要加载相关的对象。所以它将引用保留为空,直到您尝试使用该属性,然后它会自动从数据库中加载它。这些类使用System.Data.SqlClient命名空间。
当我在Windows窗体应用程序中与对象交互时,一切都按预期工作。但是当我传递对象以用作报告数据源并尝试自动加载相关对象时,它失败了。该代码创建一个SqlConnection对象,当我调用GetCommand()时,将抛出以下异常:
[System.Security.SecurityException] {
"Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed."
} System.Security.SecurityException
我尝试搜索错误,但所有显示的结果都是针对在 SQL Server 或 ASP.Net 上运行的 CLR 组件。我尝试在创建 SqlConnection 对象之前按照搜索结果建议在我的代码中添加以下调用,但似乎没有任何作用:
System.Data.SqlClient.SqlClientPermission(System.Security.Permissions.PermissionState.Unrestricted).Assert();
reportViewer.LocalReport.ExecuteReportInCurrentAppDomain(System.Reflection.Assembly.GetExecutingAssembly().Evidence);