2010-06-18 17 views
18

में एएसपी.नेट और लोड उपयोगकर्ता प्रोफाइल विकल्प में सुरक्षा अपवाद हमारे एएसपी.नेट 2.0 एप्लिकेशन के नए संस्करण की तैनाती के बाद, यह सुरक्षा अपवाद उठाना शुरू कर दिया: "सिस्टम.Security.SecurityException: प्रकार की अनुमति के लिए अनुरोध 'System.Web.AspNetHostingPermission, सिस्टम, संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b77a5c561934e089' असफल। "।आईआईएस 7.5

इंटरनेट पर त्वरित शोध के बाद हम आईआईएस 7.5 आवेदन पूल में "उपयोगकर्ता प्रोफ़ाइल लोड करें" को सही बनाकर इस आईएसई को हल करने में सक्षम थे। यह समाधान भी stackoverflow पर यहाँ कई बार उल्लेख किया गया है:

लेकिन हम कारण है कि यह सच हो गया है खोजने में असमर्थ थे। हमने नए संस्करण में सभी बदलावों की समीक्षा की (खुशी से केवल कुछ ही थे), लेकिन कुछ भी संदिग्ध नहीं मिला (रजिस्ट्री या अस्थायी डेटा तक पहुंच के रूप में कुछ लेख सुझाए गए आदि)। क्या कोई हमें संकेत दे सकता है जब आईआईएस 7.5 में होस्ट किए गए एएसपी.NET एप्लिकेशन को "उपयोगकर्ता प्रोफ़ाइल लोड करें" विकल्प को सही पर सेट करना आवश्यक है?

विवरण:

  • आवेदन पूल: .NET 2.0; प्रबंधित पाइपलाइन मोड - क्लासिक; पहचान - कस्टम डोमेन खाते
  • IIS 6.0 (W2K3) में: पुराने और आवेदन काम ठीक की नई संस्करण
  • आईआईएस 7.5 में (W2K8-आर 2): आवेदन के पुराने संस्करण ठीक काम करता है; आवेदन के नए संस्करण सुरक्षा अपवाद को जन्म देती है - यह सच है

धन्यवाद करने के लिए सेटिंग "लोड उपयोगकर्ता प्रोफ़ाइल" के बाद काम करने के लिए शुरू होता है!

संपादित करें: हमें अंततः इस समस्या का कारण मिला है! हमारे व्यवस्थापक ने पर्यावरण के उत्पादन वातावरण में स्टेजिंग से आवेदन के नए संस्करण की प्रतिलिपि बनाने के लिए विभिन्न तकनीक का उपयोग किया। उन्होंने वेब सर्वर मध्यस्थ के रूप में इस्तेमाल किया। उत्पादन वातावरण के लिए ज़िप्ड रिलीज बिल्ड कलाकृतियों को डोनलोड करने के बाद और फिर फ़ाइलों को अनजिप करने के बाद, उन्हें अभी भी "अवरुद्ध" के रूप में चिह्नित किया गया क्योंकि वे विभिन्न कंप्यूटर से आए थे। https://superuser.com/questions/38476/this-file-came-from-another-computer-how-can-i-unblock-all-the-files-in-a भी देखें। एएसपी.नेट तब पूर्ण रूप से पूर्ण ट्रस्ट के बजाय इन बाइनरी को आंशिक विश्वास में निष्पादित करता है और वास्तव में हमारे आवेदन में सुरक्षा अपवादों का उल्लेख कर रहा था।

"उपयोगकर्ता प्रोफ़ाइल लोड करें" को सही करने के लिए सुरक्षा अपवादों को साइड-इफेक्ट के रूप में तय करना। यदि "लोड उपयोगकर्ता प्रोफ़ाइल" गलत पर सेट है, तो हमारा आवेदन (हमारे कोड नहीं, शायद कुछ।नेट बीसीएल या बाहरी असेंबली) निर्देशिका "सी: \ विंडोज \ System32 \ config \ systemprofile \ AppData \ स्थानीय \ माइक्रोसॉफ्ट \ विंडोज \ अस्थायी इंटरनेट फ़ाइलें" के बारे में मूलभूत जानकारी पूछने का प्रयास कर रहा है, जिसे एप्लिकेशन पूल की पहचान की अनुमति नहीं है:

    पूर्ण विश्वास के साथ
  • : पहुँच इस क्वेरी कार्रवाई करने से इनकार किया है किसी भी अपवाद
  • आंशिक विश्वास के साथ उठाना नहीं करता है: पहुँच इस क्वेरी कार्रवाई करने से इनकार सुरक्षा अपवाद

"लोड उपयोगकर्ता प्रोफ़ाइल" अगर जन्म देती है सही पर सेट करें, फिर उपयोगकर्ता निर्देशिका में अस्थायी प्रोफ़ाइल हर बार बनाई जाती है जब एप्लिकेशन पूल प्रारंभ होता है। हमारा आवेदन तब इस प्रोफ़ाइल की "अस्थायी इंटरनेट फ़ाइलें" निर्देशिका के बारे में जानकारी पूछने का प्रयास कर रहा है, जिस पर एप्लिकेशन पूल की पहचान की अनुमति है। इस प्रकार आंशिक विश्वास के साथ भी कोई अपवाद नहीं उठाया जाता है।

वास्तव में अच्छा समस्या निवारण सत्र! :)

+0

जांच कार्य पीटर के लिए धन्यवाद, मुझे एक ही समस्या थी और स्ट्रीम यूटिलिटी (superuser.com प्रश्न में सूचीबद्ध) यह था कि मैंने अपने वेबपैप की निर्देशिका में सभी फ़ाइलों को कैसे अनवरोधित किया। और अब मैं लोड उपयोगकर्ता प्रोफाइल विकल्प बंद कर सकता हूँ! –

+1

पूरी तरह से उत्कृष्ट, हम बस इस मुद्दे में भाग गए और इसे ठीक से समझा नहीं सके। उत्तर के नीचे –

+0

विस्तृत स्पष्टीकरण है http://stackoverflow.com/questions/17149132/what-exactly-happens-when-i-set-loaduserprofile-of-iis-pool –

उत्तर

7

एक और उदाहरण जब "उपयोगकर्ता प्रोफ़ाइल लोड करें" सेटिंग आपको अस्थायी फ़ाइलों का उपयोग करने में मदद कर सकती है। कभी-कभी यह उपयोग अप्रत्यक्ष हो सकता है। उदाहरण के लिए एसक्यूएल एक्सप्रेस कुछ स्थितियों में ऐसा कर सकता है।

तो मेरी सलाह। "उपयोगकर्ता प्रोफ़ाइल लोड करें" को बंद करें और% TEMP% की जांच करें। फिर अनुप्रयोग पूल के लिए उपयोग किए जाने वाले डोमेन खाते को% TEMP% से निर्देशिका में पूर्ण पहुंच (या एक्सेस बदलें) देने का प्रयास करें। शायद यह आपकी समस्या को ठीक करता है।

एक और सलाह प्रोसेस मॉनिटर का उपयोग है (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx देखें) उपयोगकर्ता प्रोफ़ाइल के कौन से हिस्सों का उपयोग किया जाएगा (या "पहुंच से वंचित" त्रुटि प्राप्त करें) जब आप "System.Security.SecurityException: के लिए अनुरोध प्राप्त करेंगे 'System.Web.AspNetHostingPermission "अपवाद प्रकार की अनुमति।

+1

आपकी सलाह के लिए धन्यवाद। इससे हमें समस्या का निवारण करने में मदद मिली। एप्लिकेशन पूल पहचान को "सी: \ विंडोज \ System32 \ config \ systemprofile \ AppData \ स्थानीय \ माइक्रोसॉफ्ट \ विंडोज \ अस्थायी इंटरनेट फ़ाइलें" निर्देशिका तक पहुंच पढ़ने की आवश्यकता है। एप्लिकेशन सिर्फ इस निर्देशिका के लिए मूलभूत जानकारी पूछता है और यही वह है। शायद यह बाहरी असेंबली में से एक के कारण होता है जिसका हम उपयोग करते हैं (हम iTextSharp पर संदेह करते हैं)। वैसे भी आपकी सलाह ने हमें स्थिति की व्याख्या करने में मदद की, इसलिए आपको फिर से धन्यवाद। – Peter

+0

आप पीटर का स्वागत करते हैं! – Oleg

+0

क्या आईआईएस में 'LoadUserProfile = true' सेट करना संभव है और' tem: \ Users \ C: \ Users \ AccountName \ AppData \ Local \ Temp' से कहीं और डिफ़ॉल्ट temp फ़ोल्डर% TEMP% स्थान बदलना संभव है? –

0

डब्ल्यूसीएफ में एक विश्वसनीय एमएसएमक्यू बाध्यकारी को कॉन्फ़िगर करते समय लोडयूसरप्रोफाइल मदद कर सकता है। यदि ऐप पूल किसी विश्वसनीय खाते के अंतर्गत चल रहा है, तो यह एसआईडी लोड नहीं करेगा जब तक कि एप्लिकेशन पूल लोड उपयोगकर्ता प्रोफ़ाइल सेटिंग सही पर सेट न हो, और इसलिए प्रमाणीकरण विफल हो जाएगा।

1

मैं भी एक ही समस्या में भाग गया और लोड उपयोगकर्ता प्रोफ़ाइल = सत्य सेट करके समस्या का समाधान कर सकता था। हालांकि मैंने लोड उपयोगकर्ता प्रोफ़ाइल = झूठी वापस कर दी है और ऐप पूल को पुनरारंभ किया है लेकिन अब मुझे कोई अपवाद नहीं मिला है। मैं स्टैक ओवरफ्लो पर और सभी एएसपीनेट और आईआईएस फोरम पृष्ठों पर पोस्ट के सभी relavents पदों के माध्यम से चला गया है।

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