我正在尝试打开嵌入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
答案 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解决了该问题。