如下代码:
            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\"/>
请高手指点一下!!

解决方案 »

  1.   

    http://www.cnblogs.com/firstyi/archive/2008/07/24/1250447.html
      

  2.   

    我把Framwork配置工具里的运行库安全策略中调整Internat的安全级别调到完全信任,上面的错误就不出现了。问题是我不能要求每个用户都去用这个工具改配置啊。
    有没有其它方法解决?在代码里就能做到的
      

  3.   

    楼上的,谢谢指点!
    不过能否说的详细点,如何做呢?我看到使用配置工具调整区域安全性级别后,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Security.config文件也发生变化。
    是否.net控制这个权限是通过这个配置文件,而不是注册表呢?
      

  4.   

    还有个疑问,clickonce程序,不能新建AppDomain并赋予FullTrust权限吧?这样在安全上是说不过去的