2008-12-11 12 views
7

मैंने एक मशीन पर एक दूरस्थ फ़ोल्डर से फ़ाइलों और फ़ोल्डरों को मर्ज करने के लिए एक सी # विंडोज फॉर्म एप्लिकेशन लिखा है ("स्रोत" फ़ोल्डर एक मैप किए गए ड्राइव है - "Z: \ फ़ोल्डर ") एक अलग मशीन पर एक और दूरस्थ फ़ोल्डर के साथ (" गंतव्य "फ़ोल्डर एक साझा फ़ोल्डर -" \\ computername \ sharedfolder "के लिए एक यूएनसी पथ है)। मेरे पास दोनों फ़ोल्डरों के लिए पूर्ण अनुमतियां हैं I जब मैं अपनी स्थानीय मशीन पर प्रोग्राम चलाता हूं, तो यह ठीक काम करता है, लेकिन जब मैं इसे स्रोत फ़ोल्डर में से चलाने की कोशिश करता हूं तो यह सुरक्षा अपवाद के साथ विफल रहता है।मैप किए गए ड्राइव या साझा फ़ोल्डर से एक .NET प्रोग्राम चलाएं

गंतव्य फ़ोल्डर (यानि, DirectoryInfo (@ "\\ computername \ sharedfolder") के लिए DirectoryInfo कन्स्ट्रक्टर को कॉल करते समय विफलता होती है। मुझे लगता है कि समस्या यह है क्योंकि मैं मैप किए गए ड्राइव से प्रोग्राम चला रहा हूं। कोई कामकाज?


विशिष्ट अपवाद है: प्रकार की अनुमति के लिए अनुरोध 'System.Security.Permissions.FileIOPermission, mscorlib, संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b77a5c561934e089' विफल


अद्यतन

ठीक है, मैं विजुअल स्टूडियो 2008 (यह पहले 2005 में कोडित किया गया था) में अपने आवेदन मिला है,, .NET 3.5 फ्रेमवर्क लक्षित संकलित और फिर से कोशिश की।

मुझे एक ही त्रुटि मिली।


अद्यतन - संकल्प

मैं .NET 3.5 के साथ इसे करने की कोशिश, और यह काम नहीं किया, तो मैंने देखा कि आपने कहा है कि 3.5 एसपी 1। सर्विस पैक निश्चित रूप से आवश्यक है।

समस्या हल हो गई। धन्यवाद।

उत्तर

8

.NET 3.5 SP1 allows running applications off a network share। पिछले संस्करणों ने इसे अनुमति नहीं दी थी।

+0

आपको शायद यह शामिल करना चाहिए कि उन्होंने इसे डिफ़ॉल्ट रूप से अनुमति नहीं दी है। यदि आपने सुरक्षा नीतियों को संशोधित किया तो उन्होंने इसे अनुमति दी। –

6

आपको एप्लिकेशन के लिए पूर्ण ट्रस्ट अनुमतियां सक्षम करने की आवश्यकता है। नेटवर्क शेयर पर चलने वाले .NET अनुप्रयोगों को स्थानीय इंट्रानेट सुरक्षा अनुमतियां दी जाती हैं और इस प्रकार एक सैंडबॉक्स में चलती हैं।

यहां एक बैच फ़ाइल है जिसे मैंने हमारे परीक्षण ऐप्स में से एक के लिए लिखा है जो नेटवर्क से बाहर निकलता है। यह आपको मामूली संशोधन के साथ ले जाना चाहिए और चलाना चाहिए।

@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 इस व्यवहार को हटा देता है।

संबंधित मुद्दे