2008-12-11 68 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消除了這種行爲。

相關問題