2008-12-11 67 views
7

我已经编写了一个C#Windows窗体应用程序来合并远程文件夹中的文件和文件夹(“源”文件夹是映射驱动器 - “Z:\文件夹“)与另一台计算机上的另一个远程文件夹(”目标“文件夹是共享文件夹的UNC路径 - ”\\计算机名\共享文件夹“)。我对这两个文件夹拥有完全权限。当我在本地机器上运行该程序时,它可以正常工作,但是当我尝试从源文件夹内运行它时,它会失败并出现安全异常。从映射驱动器或共享文件夹运行.NET程序

调用目标文件夹的DirectoryInfo构造函数(例如,DirectoryInfo(@“\\ computername \ sharedfolder”)时发生故障我假设问题是因为我从映射的驱动器运行程序。


具体的例外是: 请求类型的权限 'System.Security.Permissions.FileIOPermission,mscorlib程序,版本= 2.0.0.0,文化=中性公钥= b77a5c561934e089' 失败


UPDATE

好的,我将我的应用程序加入到Visual Studio 2008中(它以前编码在2005年),针对.NET 3.5框架,编译并再次尝试。

我得到了完全相同的错误。


更新 - 解决方案

我与.NET 3.5试了一下,也没有工作,那么我注意到,你说3.5 SP1。该服务包是绝对需要的。

问题解决。谢谢。

回答

6

您需要为应用程序启用FullTrust权限。在网络共享上运行的.NET应用程序被授予本地Intranet安全权限,因此可以在沙箱中运行。

这是我为我们的一个测试应用程序编写的批处理文件,它运行在网络之外。它应该让你启动并进行微小的修改。

@ECHO OFF 
SET CASPOL=%windir%\Microsoft.NET\Framework\v2.0.50727\CasPol.exe 
CLS 

%CASPOL% -pp off 
%CASPOL% -m -ag 1.2 -url file://server/directory/* FullTrust 

如上所述,.NET 3.5消除了这种行为。

相关问题