为什么我得到SqlClientPermission异常?

时间:2011-05-12 12:51:02

标签: c# sql-server-2008 database-connection

我构建了一个C#WinForms应用程序,它访问SQL Server 2008以进行数据操作。

应用程序在开发的机器上正常工作。但是,当我复制EXE并将其移动到另一台计算机(Windows XP)时,我在登录系统期间遇到以下错误(换句话说,当我访问数据库时)。

Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed

这是我的连接字符串:

Data Source=vmsql;Integrated Security=SSPI;Initial Catalog=ChequeBookInventory

Stack trace is given in a screen shot

知道如何解决这个问题吗?!

4 个答案:

答案 0 :(得分:2)

最有可能的是,程序不会以完全信任的方式执行。要么是因为计算机配置如下,要么是从网络共享运行它...
可以找到更多信息here

答案 1 :(得分:0)

将执行用户权限授予数据库。

答案 2 :(得分:0)

嗯,这是诀窍的组合......

  1. 设置代码级访问权限...我允许通过.NET Fx配置在网络共享URL的机器级别上完全信任(我必须单独安装)
  2. 安装.NET最新版本..(我坚持3.5; - ])
  3. 感谢所有帮助人员: - )!!

答案 3 :(得分:-2)

如果你想远程连接到SQL Server,并且不想使用用户名和密码而是使用Windows身份验证,这只是一种方式 - “AD”,我认为AD可能会导致更多问题(但AD更安全) ,我非常抱歉关于我的答案不正确,我找到了一些关于这个问题的参考资料,我认为这可能有所帮助。

1.How to troubleshoot the "Cannot generate SSPI context" error message

2.“Cannot Generate SSPI Context” error message, more comments for SQL Server

3.“Cannot generate SSPI context” error message, when connect to local SQL Server outside domain

4.Service Principal Names (Windows)

5."Access Denied" error message when you try to access remote resources

下面的答案很糟糕:

如果使用"Integrated Security=SSPI",则表示无法远程连接到SQL Server。

如果您想远程连接,请使用"User Id=myUsername;Password=myPassword;"代替"Integrated Security=SSPI"

(当然,您的SQL Server必须接受“远程连接”)connection string for connecting to data sources