我有一个在本地pc (A)中执行时工作的exe文件,但当我在网络pc (B)中执行它时,它不工作。程序所在的文件夹与正确的权限共享。唯一的原因是网络pc (B)不在(A) pc的IP范围内,而是在同一个域中。我可以从一台电脑到另一台电脑。
对于另一个具有与本地PC (A)相同IP范围的网络pc (C),则exe工作。
我是这样做的:
create
SET GROUP=Import tool
SET GROUPDESC=Enabling fulltrust to TCImporter assemblies
SET CASPOL=%WINDIR%\Microsoft.Net\Framework\v2.0.50727\caspol.exe
%caspol% -polchgprompt off
%CASPOL% -m -addgroup All_Code -allcode Nothing -name "%GROUP%"
-description "%GROUPDESC%"
%CASPOL% -m -addgroup "%GROUP%" -strong -file .\TCImporter.exe
-noname -noversion FullTrust -name "TCImporter" -description
"fulltrust to TCImporter.exe" -exclusive on
%CASPOL% -m -addgroup "%GROUP%" -strong -file .\log.dll -noname
-noversion FullTrust -name "log" -description "fulltrust to log.dll"
-exclusive on
%caspol% -polchgprompt on然后,当我在(A) pc中执行exe文件时,(B) pc中出现的错误是:
日志:错误FileAppender无法获取文件\lbnf0052\TCImport\log-file.txt上的锁。
请求使用'System.Security.Permissions.FileIOPermission,mscorlib类型的权限
Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089‘失败了。
日志:错误XmlConfigurator:初始化配置文件失败
\lbnf0052\TCImport\TCImporter.exe.Config System.Security.SecurityException文件的监视程序:
请求失败。在System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm,PermissionSet授予,PermissionSet拒绝,RuntimeMethodHandle rmh,SecurityAction操作,对象需求,IPermission permThatFailed)在PermissionSet ass emblyOrString,PermissionSet emblyOrString,PermissionSet拒绝,RuntimeMethodHandle rmh,SecurityAction action,Object refused,IPermission permThatFailed)
在…
System.Security.CodeAccessSecurityEngine.CheckSetHelper(PermissionSet授权,PermissionSet拒绝,PermissionSet refused,RuntimeMethodHandle rmh,Object assemblyOrString,SecurityAction action,布尔throwException)
在…
System.Security.CodeAccessSecurityEngine.CheckSetHelper(CompressedStack cs,PermissionSet赠款,PermissionSet拒绝,PermissionSet refused,RuntimeMethodHandle rmh,Assembly,SecurityAction action)
在…
log.Config.XmlConfigurator.ConfigureAndWatchHandler..ctor(ILoggerRepository存储库,FileInfo configFile)
在…
log.Config.XmlConfigurator.ConfigureAndWatch(ILoggerRepository存储库,FileInfo configFile)
失败的行动是:
LinkDemand
第一个权限失败的类型是:
System.Security.PermissionSet
程序集中失败的区域是:
Intranet (当我更改某些内容时,这有时是MyComputer )。
发布于 2012-08-08 08:31:09
可能是http://blogs.msdn.com/b/shawnfa/archive/2005/02/04/367390.aspx中描述的“允许部分受信任的调用方”的问题。
如此处所述,更改程序集属性,http://davedewinter.com/2009/05/21/the-allowpartiallytrustedcallersattribute-aptca-6/可能会为您修复它。
此外,签署协议似乎也会影响到问题。
另外,.net 4的行为也不同:http://msdn.microsoft.com/en-us/magazine/ee336023.aspx。
https://stackoverflow.com/questions/8215213
复制相似问题