2008-12-11 16 views
7

Bir makinede bir uzak klasördeki dosyaları ve klasörleri birleştirmek için bir C# Windows Forms uygulaması yazdım ("source" klasörü eşlenmiş bir sürücüdür - "Z: \ klasörü ") farklı bir makinede başka bir uzak klasörle (" hedef "klasörü) paylaşılan klasörün bir UNC yolu -" \\ bilgisayaradı \ sharedfolder "). Her iki klasöre de Tam izinlerim var. Programı yerel makinemde çalıştırdığımda iyi çalışıyor, ancak kaynak klasörün içinden çalıştırmayı denediğimde bir güvenlik istisnasıyla başarısız oluyor.Bir .NET programını eşlenmiş bir sürücüden veya paylaşılan klasörden çalıştırma

Hedef klasör için DirectoryInfo yapıcısı çağrılırken hata oluşur (yani, DirectoryInfo (@ "\\ bilgisayaradı \ sharedfolder"). Sorun, bir eşlenen sürücüden programı çalıştırdığım için sorun olduğunu düşünürüm.


belirli istisnadır: tip izni için Talebi 'nötr System.Security.Permissions.FileIOPermission, mscorlib, Version = 2.0.0.0, Culture =, PublicKeyToken = b77a5c561934e089' başarısız


.

UPDATE

Tamam, Visual Studio 2008'e (daha önce 2005'te kodlanmış) uygulamamı aldım, .NET 3.5 çerçevesini hedefledim, derledim ve yeniden denedim.

Tam olarak aynı hatayı aldım.


GÜNCELLEME - Çözüm

Ben .NET 3.5 ile denedim ve işe yaramadı, o zaman 3.5 SP1 söyledi fark ettim. Hizmet paketi kesinlikle gerekli.

Sorun çözüldü. Teşekkür ederim.

cevap

6

Uygulama için FullTrust izinlerini etkinleştirmeniz gerekir. Bir ağ paylaşımında çalışan .NET uygulamalarına Yerel İntranet güvenlik izinleri verilir ve bu nedenle sanal alanda çalışır.

Ağdan çalışan test uygulamalarımızdan biri için yazdığım bir toplu iş dosyası. Seni küçük değişikliklerle çalıştırıp çalıştırmalı.

@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 

Yukarıda belirtildiği gibi, .NET 3.5 bu davranışı kaldırır.

İlgili konular