SQL Reporting Services尝试使用嵌入代码访问数据库

时间:2012-01-29 06:58:52

标签: sql sql-server

我正在尝试打开嵌入vb代码的数据库。在MyConnection.Open()我收到错误

  

警告1 [rsRuntimeErrorInExpression]的值表达式   textrun'Textbox1.Paragraphs [0] .TextRuns [0]'包含错误:   请求类型的许可   'System.Data.SqlClient.SqlClientPermission,System.Data,   Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'   失败。 C:\ Users \ tedpottel \ Documents \ Visual Studio

报告中的我的数据源是Data Source=(local);Initial Catalog=bw
vb代码是:

Public Function TestData  () As Boolean
Dim MyConnection As System.Data.SQLClient.SqlConnection
Dim MyCommand As System.Data.SQLClient.SqlCommand
MyConnection = New System.Data.SQLClient.SqlConnection("server=(local);Initial Catalog=bw")
MyConnection.Open() 
MyConnection.Close() 
return True
End Function

1 个答案:

答案 0 :(得分:2)

Google的第一个结果是“System.Data.SqlClient.SqlClientPermission”:

  

嗨Joost,

     

根据您的描述,此问题可能与代码访问安全性有关。请参阅以下文章来配置程序集以确保它已设置为fulltrust。请求“SecurityPermission”类型的权限失败:   http://blogs.msdn.com/b/floditt/archive/2009/08/10/request-for-the-permission-of-type-securitypermission-failed.aspx

请点击此链接,了解有关如何配置代码以完全信任的方式运行的信息。

  

工具CasPol.exe(.Net SDK的一部分)将帮助您识别System.Security程序集所属的CodeGroup。在这个程序集的GAC文件夹中,我在这个程序集上做了一个CasPol -rsg(resolvesGroup):

     

现在我们可以看到此程序集属于Microsoft_Strong_Name(CodeGroup摘录中的第3行),并且已配置为FullTrust。使用-rsp(resolvesPermissions),您可以可视化授予此程序集的所有权限(如FullTrust中名为PermissionSet的定义):

     

引发异常时,此程序集配置为“Nothing”(NamedPermissionSets摘录的第3行)。通过授予此程序集FullTrust解决了该问题。