【发布时间】:2018-06-14 21:05:39
【问题描述】:
我放弃了。我已经用谷歌搜索过,阅读了许多 SO 帖子......我无法弄清楚这一点。我正在使用 Visual Studio 2012 .NET 3.5 连接到本地数据库实例进行测试。如果我使用
string cnn = @"Context Connection=True";
using (SqlConnection connection = new SqlConnection(cnn))
{
connection.Open();
我连接并且我的代码有效。我现在需要在这个解决方案中添加一个SqlbulkCopy。为此,我将连接字符串切换为:
string cnn = @"Data source= (localdb)\ProjectsV12; Database=TableTesting; Trusted_Connection=True;";
using (SqlConnection connection = new SqlConnection(cnn))
{
connection.Open();
无论我如何处理连接字符串,我都会收到以下错误:
A .NET Framework error occurred during execution of user-defined routine or aggregate "WorkTable":
System.Security.SecurityException: Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
System.Security.SecurityException:
at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
at System.Security.PermissionSet.Demand()
at System.Data.Common.DbConnectionOptions.DemandPermission()
at System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at StoredProcedures.WorkTable(String o)
我只是不知道如何调试/修复/纠正这个问题。
【问题讨论】:
-
所以您的论点是
connection.Open()语句中发生了异常?另外,我在您的代码中没有看到SqlBulkCopy。 -
另外,这段代码是否在 SQL Server 的 SQL CLR 存储过程中运行?
-
@STLDeveloper 是的 CLR sp;当我使用调试器单步执行时,代码会爆炸并在
connection.Open()行返回错误。另外,完整的代码很长,所以我只发布了有问题的代码。调试器就停在那里。如果我使用"Context connection=True"字符串,那么代码将一直运行(经过connection.Open()),直到遇到SqlBulkCopy调用。据我了解,SqlBulkCopy不适用于上下文连接。这不正确吗? -
我只做了一点 SQL CLR,而不是其中的 SqlBulkCopy,所以可能不会有太大帮助。看来您在某个地方遇到了权限问题。我知道在使用上下文连接时,会绕过身份验证,所以也许这就是上下文连接有效而正常连接失败的原因。
-
@STLDeveloper 同意这是某种权限问题。我只是不知道如何确定与 VS2012 一起安装的本地 MSSQLEXpress 实例是否是问题或其他问题。
标签: c# .net visual-studio-2012 clr