2008-11-09 7 views
8

मध्यम ट्रस्ट आपको क्या करने से रोकता है? उदाहरण के लिए, मैंने पहले से ही सीखा है कि मध्यम ट्रस्ट आपको System.IO.Path.GetTempPath() का उपयोग करने से रोकता है। इस तरह की अन्य चीजें क्या हैं?किसी साझा होस्ट पर मध्यम ट्रस्ट के तहत चलाने के लिए मेरे एएसपी.NET ऐप में कोडिंग से बचने के लिए सबसे आम, सामान्य चीजें क्या हैं?

उत्तर

4

यहां विश्वास समस्याओं के बारे में जानने और हल करने का तरीका बताया गया है।

1) खोज अपने Windows \ Microsoft.NET \ फ्रेमवर्क [अपने संस्करण] \ फ़ाइलों के लिए कॉन्फ़िग फ़ोल्डर:

  • वेब।config (इस रूट कॉन्फ़िग फ़ाइल है)
  • web_mediumtrust.config
  • web_hightrust.config

2) web.config बदलें कहना

<trust level="Medium" originUrl="" /> 

3) अपने ASP.NET का प्रयास करें एप्लिकेशन। अनुमति अनुमति त्रुटि के साथ मेरा असफल रहा।

4) WinMerge की तरह एक diff टूल में web_mediumtrust.config और web_hightrust.config को डिफ करें।

5) एक समय में उच्च से मध्यम तक सेटिंग्स कॉपी करें और देखें कि वे आपके ऐप को कैसे प्रभावित करते हैं। मेरे मामले में, कॉन्फ़िगरेशनप्रमिशन को संदर्भित त्रुटि संदेश, इसलिए निदान करना आसान था।

यदि आप वेब_mediumtrust.config फ़ाइल में सटीक रेखाएं पिन कर सकते हैं जो आपको अवरुद्ध कर रहे हैं, तो हो सकता है कि आप इसे अपनी होस्टिंग कंपनी के साथ साझा कर सकें और काम करने की बेहतर संभावनाएं प्राप्त कर सकें।

अधिक यहाँ प्रलेखन:
http://msdn.microsoft.com/en-us/library/aa302425.aspx

@Oli, मेरे ऐप GoDaddy पर होस्ट किया गया है और मैं कोड में कुछ समाधान करने के लिए जब मैं Lucene.NET उपयोग शुरू कर दिया था। मुझे GetTempPath और System.IO.FileInfo का उपयोग न करने के लिए Lucene.NET स्रोत कोड को संशोधित करना पड़ा।

+0

मैं बस यह बताउंगा कि हर किसी के लिए शायद क्या स्पष्ट है, लेकिन मुझे यह सुनिश्चित करना था कि: को अनुभाग में जाना चाहिए, और स्तर विशेषता केस संवेदनशील है, तो ऊपरी मामला "एम", कम मामला बाकी सब कुछ: एस –

3

कौन सुनिश्चित कर सकता है? यही कारण है कि आपको अपने web.config में मध्यम सेट के ट्रस्ट स्तर के साथ विकसित करना चाहिए।

<trust level="Full|High|Medium|Low|Minimal" /> 
3

अधिकतर साझा मेजबान एक वास्तविक माध्यम ट्रस्ट पर्यावरण का उपयोग नहीं करते हैं क्योंकि यह कुछ चीजों को प्रतिबंधित करता है जो बहुत महत्वपूर्ण हैं। अन्य अपने स्वयं के गुदा कारणों के लिए कुछ अतिरिक्त सेटिंग्स को प्रतिबंधित करते हैं।

सबसे अच्छी बात यह है कि आप अपने मेजबान से पूछ सकते हैं कि वे एएसपीएनईटी के लिए कौन सी सेटिंग्स का उपयोग करते हैं। ट्रस्ट स्तर के चश्मा के लिए पूछें जिनका वे उपयोग कर रहे हैं। स्मृति सीमा का पता लगाएं। एक बार जब आप उन विवरण प्राप्त कर लेंगे तो आप परिदृश्य को स्थानीय स्तर पर दोहराने में सक्षम होना चाहिए।

यदि वे आपको नहीं बताएंगे, तो बस अपने ऐप को मध्यम ट्रस्ट में चलाने के लिए सेट करें, लेकिन यह स्पष्ट रूप से काम नहीं करेगा यदि वे एक संशोधित ट्रस्ट स्तर का उपयोग कर रहे हैं।

यहां some information on setting trust levels in IIS है।

आम तौर पर मैंने जो एकमात्र मुद्दा चलाया है वह है: यदि आप असेंबली को दबा रहे हैं, तो सुनिश्चित करें कि आप आंशिक रूप से भरोसेमंद अनुरोध (यह एक असेंबली मेटा टैग है) अन्यथा आप उनका उपयोग करने में सक्षम नहीं होंगे।

यहाँ GoDaddy's Medium Trust information page के एक उद्धरण है:

आवेदन एक मध्यम विश्वास स्तर के तहत काम किया है कोई रजिस्ट्री का उपयोग, विंडोज ईवेंट लॉग करने के लिए कोई उपयोग, ReflectionPermission और उपयोग नहीं कर सकते हैं (लेकिन प्रतिबिंब का उपयोग कर सकते हैं) । ऐसे एप्लिकेशन केवल नेटवर्क पते की परिभाषित सीमा के साथ संवाद कर सकते हैं और फ़ाइल सिस्टम एक्सेस तक एप्लिकेशन की आभासी निर्देशिका पदानुक्रम तक सीमित हो सकती है।

एक मध्यम विश्वास स्तर का उपयोग करते हुए साझा सिस्टम संसाधनों तक पहुँचने से अनुप्रयोगों को रोकता है और आवेदन हस्तक्षेप के लिए संभावित दूर करता है। OleDbPermission और OdbcPermission को को उन डेटा प्रदाताओं का उपयोग करने के लिए डेटाबेस तक पहुंचने के लिए अनुमति देता है। आउटबाउंड http और https यातायात को अनुमति देने के लिए WebPermission संशोधित किया गया है।

शायद यह आपके मानचित्र के साथ काम करने के लिए बिल्कुल सही नहीं होगा (जब तक कि आप गोडाडी के साथ न हों) लेकिन यह एक सामान्य उदाहरण है।

+0

वहाँ प्रलेखन कहीं कि मुझे दिखाओ कि कैसे अपने खुद के कंप्यूटर पर एक मध्यम विश्वास स्तर स्थापित करने के लिए, बातें की कोशिश करने के लिए है? मैंने एमएसडीएन को देखा और मुझे परेशानी हो रही थी ... –

+0

निश्चित रूप से, मैंने अभी पोस्ट के लिए एक लिंक जोड़ा है। – Oli

0

सुनिश्चित करें कि किसी भी तृतीय पक्ष पुस्तकालय/ढांचे (कैसल दिमाग में आता है) मध्यम ट्रस्ट में निर्माण (या बनाया जा सकता है) हैं।

0

system.runtime.serialization लाइब्रेरी मध्यम ट्रस्ट में पूरी तरह से अनुपलब्ध है।

मैंने जेसन सीरियलाइजेशन/deserialization के लिए इसके चारों ओर कोड किया और कठिन तरीके से पता चला। सहयोगी को यह पुष्टि करने में एक सप्ताह लग गया कि मध्यम ट्रस्ट प्रतिबंधों को दोष देना था। परिणामस्वरूप होस्टिंग कंपनियों को स्विच करना समाप्त हो गया।

0

मध्यम ट्रस्ट में, कम से कम मेरे मेजबान पर, पी/इनवॉके कॉल अनुपलब्ध हैं, यानी COM घटक को कॉल करने के लिए [DLLImport] का उपयोग करना काम नहीं करेगा।

-Edoode

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