如下代码:
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\"/>
请高手指点一下!!
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\"/>
请高手指点一下!!
有没有其它方法解决?在代码里就能做到的
不过能否说的详细点,如何做呢?我看到使用配置工具调整区域安全性级别后,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Security.config文件也发生变化。
是否.net控制这个权限是通过这个配置文件,而不是注册表呢?