当前位置:  开发笔记 > 编程语言 > 正文

从网络共享运行"部分受信任"的.NET程序集

如何解决《从网络共享运行"部分受信任"的.NET程序集》经验,为你挑选了1个好方法。

当我尝试boo.exe从网络共享(映射到驱动器)运行.NET程序集()时,它失败,因为它只是部分信任:

Unhandled Exception: System.Security.SecurityException: That assembly does not allow partially trusted callers.
   at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
   at BooCommandLine..ctor()
   at Program..ctor()
   at ProgramModule.Main(String[] argv)
The action that failed was:
LinkDemand
The assembly or AppDomain that failed was:
boo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67
The Zone of the assembly that failed was:
Intranet
The Url of the assembly that failed was:
file:///H:/boo-svn/bin/boo.exe

根据博客文章的说明,我向.NET配置添加了一个策略,完全信任所有程序集file:///H:/*作为其URL.我通过在.NET配置中file:///H:/boo-svn/bin/boo.exeEvaluate Assembly工具中输入URL 并注意到boo.exe具有Unrestricted权限(在策略之前没有)来验证这一点.

即使有了许可,boo.exe也不会运行.我仍然得到相同的错误消息.

我该怎么做来调试这个问题?是否有另一种方法可以从网络共享运行"部分受信任"的程序集,而无需为我想要运行的每个程序集更改某些内容?



1> Judah Gabrie..:

使用.NET 3.5 SP1,从UNC共享运行的.NET程序集具有完全权限.

请参阅Brad Abrams的Allow .exes以运行网络共享以进行解决方法和讨论,最后后续的.NET 3.5 SP1允许从网络共享启动托管代码.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有