में एएसपी.नेट और लोड उपयोगकर्ता प्रोफाइल विकल्प में सुरक्षा अपवाद हमारे एएसपी.नेट 2.0 एप्लिकेशन के नए संस्करण की तैनाती के बाद, यह सुरक्षा अपवाद उठाना शुरू कर दिया: "सिस्टम.Security.SecurityException: प्रकार की अनुमति के लिए अनुरोध 'System.Web.AspNetHostingPermission, सिस्टम, संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b77a5c561934e089' असफल। "।आईआईएस 7.5
इंटरनेट पर त्वरित शोध के बाद हम आईआईएस 7.5 आवेदन पूल में "उपयोगकर्ता प्रोफ़ाइल लोड करें" को सही बनाकर इस आईएसई को हल करने में सक्षम थे। यह समाधान भी stackoverflow पर यहाँ कई बार उल्लेख किया गया है:
- Strange ASP.NET error !
- System.Web.AspNetHostingPermission Exception on New Deployment
- Running a asp.net web application project on IIS7 throws exception
लेकिन हम कारण है कि यह सच हो गया है खोजने में असमर्थ थे। हमने नए संस्करण में सभी बदलावों की समीक्षा की (खुशी से केवल कुछ ही थे), लेकिन कुछ भी संदिग्ध नहीं मिला (रजिस्ट्री या अस्थायी डेटा तक पहुंच के रूप में कुछ लेख सुझाए गए आदि)। क्या कोई हमें संकेत दे सकता है जब आईआईएस 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 \ स्थानीय \ माइक्रोसॉफ्ट \ विंडोज \ अस्थायी इंटरनेट फ़ाइलें" के बारे में मूलभूत जानकारी पूछने का प्रयास कर रहा है, जिसे एप्लिकेशन पूल की पहचान की अनुमति नहीं है:
-
पूर्ण विश्वास के साथ
- : पहुँच इस क्वेरी कार्रवाई करने से इनकार किया है किसी भी अपवाद
- आंशिक विश्वास के साथ उठाना नहीं करता है: पहुँच इस क्वेरी कार्रवाई करने से इनकार सुरक्षा अपवाद
"लोड उपयोगकर्ता प्रोफ़ाइल" अगर जन्म देती है सही पर सेट करें, फिर उपयोगकर्ता निर्देशिका में अस्थायी प्रोफ़ाइल हर बार बनाई जाती है जब एप्लिकेशन पूल प्रारंभ होता है। हमारा आवेदन तब इस प्रोफ़ाइल की "अस्थायी इंटरनेट फ़ाइलें" निर्देशिका के बारे में जानकारी पूछने का प्रयास कर रहा है, जिस पर एप्लिकेशन पूल की पहचान की अनुमति है। इस प्रकार आंशिक विश्वास के साथ भी कोई अपवाद नहीं उठाया जाता है।
वास्तव में अच्छा समस्या निवारण सत्र! :)
जांच कार्य पीटर के लिए धन्यवाद, मुझे एक ही समस्या थी और स्ट्रीम यूटिलिटी (superuser.com प्रश्न में सूचीबद्ध) यह था कि मैंने अपने वेबपैप की निर्देशिका में सभी फ़ाइलों को कैसे अनवरोधित किया। और अब मैं लोड उपयोगकर्ता प्रोफाइल विकल्प बंद कर सकता हूँ! –
पूरी तरह से उत्कृष्ट, हम बस इस मुद्दे में भाग गए और इसे ठीक से समझा नहीं सके। उत्तर के नीचे –
विस्तृत स्पष्टीकरण है http://stackoverflow.com/questions/17149132/what-exactly-happens-when-i-set-loaduserprofile-of-iis-pool –