none
调用共享装配件连接sql出现异常,但作为私有装配件正常 RRS feed

  • 常规讨论

  • 同一个共享装配件,一些机器调用没问题,但一些就会出现
    System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。
    的异常,但是在这些失败的机器里把这个装配件作为私有装配件引用则一切正常,这是怎么回事?
    应用程序和装配件都是C#写的

    2009年7月14日 3:06

全部回复

  • 你好!
         你检查一下你的代码请求了SqlClientPermission的哪种权限,相关的机器上的安全设置可能没有提供类似的权限!
    周雪峰
    2009年7月14日 5:15
    版主
  • 应用程序自身并没有连接sql,所有连接都是在装配件里完成的,也就是说作为共享装配件或是私有装配件会受到这一方面的影响?
    刚才问了一下装配件的制作者,他说里面就是一个SqlConnection的Open而已,并无设置权限

    2009年7月14日 6:09
  • 你好,请检查全局缓冲程序集是否存在b77a5c561934e089程序集,重新添加往全局中添加一次。
    邹俊才
    2009年7月14日 9:27
    版主
  • 你好,请检查全局缓冲程序集是否存在b77a5c561934e089程序集,重新添加往全局中添加一次。
    邹俊才
    查过了,有很多
    2009年7月14日 9:33
  • 你好,请把System.Data(b77a5c561934e089)卸载,重新安装进来试一下!估计这里的程序集有问题!
    邹俊才
    2009年7月14日 10:12
    版主
  • 重装那个是哪个dll?
    2009年7月16日 1:02
  • 你好,

    告诉我们,出现Permission问题的程序是如何运行的。从你的描述看,我认为是Host应用程序没有授予SqlClientPermission,我们需要知道你是如何运行Host应用程序的。

    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年7月16日 3:23
    版主
  • LS是不是说应用程序如何调用那个连接数据库的dll?

    2009年7月18日 3:21
  • 你好,

    使用这个工具,去看你调用的程序被赋予了什么样的权限:
    http://msdn.microsoft.com/en-us/library/2bc0cxhc.aspx

    To evaluate an assembly

    1. Click the Runtime Security Policy node of the console tree.

    2. Click the Action menu, and select from the available commands.

      Alternately, you can right-click the Runtime Security Policy node and select from the same list of commands on the shortcut menu, or click the Evaluate Assembly link in the pane on the right. The tool displays a corresponding wizard.

    3. Follow the directions that appear in the wizard to evaluate the permissions that will be granted to an assembly or the code groups that give permissions to an assembly. You can use this information to determine the effect of current security policy on an assembly that you specify.



    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年7月20日 1:24
    版主
  • 本机和局域网内的权限是fulltrust
    2009年7月20日 9:16
  • 是否能够使用下上面的工具去评估一下调用程序的权限和装配件的权限呢呢在出问题的机器上,如果你没有把装配件放到应用程序文件夹中,你放在那里被调用而引起问题呢?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年7月20日 9:42
    版主
  • 我要查的是程序针对使用机器的权限还是该程序针对服务器的权限?

    2009年7月21日 1:16
  • 你可以看下Code Access Security的概念,当Common Language Runtime加载一个Assembly时将会根据Assembly的特征(从哪里来,有强名吗,被数字证书签名了吗)及本机的安全策略来决定赋予相应的权限给这个Assembly,现在的问题是在一些情况下出现permission异常,你当然是应该查本机运行的这个应用程序的权限和那个装配件Assembly的权限。还有如果你没有把装配件放到应用程序文件夹中,你放在哪里被调用呢?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年7月21日 1:37
    版主
  • 连接数据库的那个dll被放在别的盘里,用loadfrom调用,其他程序也是这样调用它,并没有放在一起

    2009年7月21日 4:12
  • 那你能够使用这个工具,去看调用程序和这个被加载的Assembly被赋予了什么样的权限?

    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年7月21日 6:55
    版主
  • 这个问题有没有解决呢,你用工具查看那个被加载的Assembly被赋予了什么样的权限吗,这个问题我的考虑如下:因为是权限问题,所以要么是调用程序的权限不够,要么是被加载的Assembly(从低安全级别的地方加载)没有被授予需要的权限。
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年7月23日 2:05
    版主
  • 这个问题有没有解决呢,你用工具查看那个被加载的Assembly被赋予了什么样的权限吗,这个问题我的考虑如下:因为是权限问题,所以要么是调用程序的权限不够,要么是被加载的Assembly(从低安全级别的地方加载)没有被授予需要的权限。
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.

    出差在外,没法试,过两个星期就能试验,先勾上去吧,月底回公司本部再试验
    2009年8月7日 11:00