AppDomain.CreateInstance部署到ClickOnce上报错

wszl 2010-06-29 03:40:08
如下代码:
AppDomainSetup setup = new AppDomainSetup();

setup.PrivateBinPath = "\\bin";
Evidence ev = new Evidence(AppDomain.CurrentDomain.Evidence);
AppDomain runDomain = AppDomain.CreateDomain("handservice", ev, setup);
Class1 class1= (Class1)runDomain.CreateInstance("assembly1", "XXX.Class1").Unwrap();

这段代码中我本地执行完全没有问题,但是部署到Clickonce后,执行到最后一句就报异常了

System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Security.SecurityException: 请求“System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。
在 System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
在 System.Security.CodeAccessPermission.Demand()
在 System.AppDomainSetup.VerifyDir(String dir, Boolean normalize)
在 System.AppDomain.get_BaseDirectory()
在 XXX.Class1.ctor()
失败的操作是:
Demand
失败的第一个权限的类型是:
System.Security.Permissions.FileIOPermission
失败的第一个权限是:
<IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
PathDiscovery="C:\Documents and Settings\Administrator\Local Settings\Apps\2.0\NHKWGMN9.LCM\JP231KB0.5C8\gold..tion_17a79a0d8060251d_0005.0000_784dafe697e682b5\"/>

该请求用于:
<IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
PathDiscovery="C:\Documents and Settings\Administrator\Local Settings\Apps\2.0\NHKWGMN9.LCM\JP231KB0.5C8\gold..tion_17a79a0d8060251d_0005.0000_784dafe697e682b5\"/>


请高手指点一下!!
...全文
143 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wszl 2010-07-01
  • 打赏
  • 举报
回复
楼上的,谢谢指点!
不过能否说的详细点,如何做呢?我看到使用配置工具调整区域安全性级别后,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Security.config文件也发生变化。
是否.net控制这个权限是通过这个配置文件,而不是注册表呢?
longhair9711 2010-07-01
  • 打赏
  • 举报
回复
顶顶顶
  • 打赏
  • 举报
回复
路过 帮顶
wszl 2010-07-01
  • 打赏
  • 举报
回复
还有个疑问,clickonce程序,不能新建AppDomain并赋予FullTrust权限吧?这样在安全上是说不过去的
wszl 2010-06-30
  • 打赏
  • 举报
回复
顶起!
没有人知道吗?
hyblusea 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wszl 的回复:]
我把Framwork配置工具里的运行库安全策略中调整Internat的安全级别调到完全信任,上面的错误就不出现了。问题是我不能要求每个用户都去用这个工具改配置啊。
有没有其它方法解决?在代码里就能做到的
[/Quote]

这还不简单吗?? 写段代码,去修改注册表啊....
wszl 2010-06-30
  • 打赏
  • 举报
回复
再顶!
分不够多么?
wszl 2010-06-29
  • 打赏
  • 举报
回复
我把Framwork配置工具里的运行库安全策略中调整Internat的安全级别调到完全信任,上面的错误就不出现了。问题是我不能要求每个用户都去用这个工具改配置啊。
有没有其它方法解决?在代码里就能做到的
mayonglong 2010-06-29
  • 打赏
  • 举报
回复
帮顶~~~~

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧