从映射的驱动器或共享文件夹运行.NET程序

我编写了一个C#Windows窗体应用程序,用于将一台计算机上的远程文件夹中的文件和文件夹(“source”文件夹是映射驱动器 – “Z:\ folder”)与另一台计算机上的另一个远程文件夹(“目标”)合并folder是共享文件夹的UNC路径 – “\\ computername \ sharedfolder”)。 我对这两个文件夹都拥有完全权限。 当我在本地计算机上运行程序时,它运行正常,但是当我尝试从源文件夹中运行它时,它会因安全exception而失败。

调用目标文件夹的DirectoryInfo构造函数(即DirectoryInfo(@“\\ computername \ sharedfolder”)时发生故障。我认为问题是因为我从映射驱动器运行程序。任何解决方法?


具体例外是:请求类型’System.Security.Permissions.FileIOPermission,mscorlib,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089’的权限失败。


UPDATE

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

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


更新 – 决议

我尝试使用.NET 3.5,它没有用,然后我注意到你说的是3.5 SP1。 绝对需要服务包。

问题解决了。 谢谢。

.NET 3.5 SP1允许从网络共享中运行应用程序 。 以前的版本不允许它。

您需要为应用程序启用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删除了此行为。