मेरे पास एक काफी स्थिर सर्वर एप्लिकेशन संस्करण है जो लगभग एक वर्ष के लिए दर्जनों ग्राहकों पर तैनात किया गया है।सुरक्षा महत्वपूर्ण विधि तक पहुंचने के लिए सुरक्षा पारदर्शी विधि एक्स द्वारा प्रयास वाई विफल
एक नए ग्राहक हाल ही में सेटअप आवेदन और निम्न त्रुटि हो रही है:
System.MethodAccessException: Attempt by security transparent method [SomeMethod] to access security critical method [SomeOtherMethod] failed.
दोनों SomeMethod और SomeOtherMethod विधानसभाओं कि मैंने लिखा में तरीकों, जो .NET 4 के खिलाफ बनाया जाता है, और कहा कि अंदर चल रहे हैं एक विंडोज सेवा। यदि इससे कोई फर्क पड़ता है, तो SomeOtherMethod .NET 2.0 के विरुद्ध बनाए गए किसी तृतीय पक्ष असेंबली (EntLib 4.1) से किसी प्रकार का संदर्भ देता है। EntLib 4.1 के लिए कोड को देखते हुए, मुझे लगता है कि वे सुरक्षा ट्रांस्पेरेंट और एपीटीसी दोनों विशेषताओं का उपयोग करते हैं, लेकिन इसने कभी अन्य ग्राहकों पर समस्याएं नहीं पैदा की हैं।
इन असेंबली को .NET 2.0 सीएलआर से अपग्रेड किया गया था, लेकिन बहुत समय पहले। यह सटीक कोड अन्य ग्राहकों पर ठीक है, और मैं स्पष्ट रूप से एपीटीसी विशेषता का उपयोग नहीं कर रहा हूं और न ही मैं कहीं भी सुरक्षा क्रिटिकल विशेषता का उपयोग कर रहा हूं।
इससे मुझे निष्कर्ष निकाला जाता है कि यह एक कॉन्फ़िगरेशन समस्या है या शायद .NET Framework पैच समस्या है। क्या .NET के लिए एक पैच जारी किया गया है जो इस ब्रेकिंग चेंज का कारण बनता है? क्या कोई कॉन्फ़िगरेशन सेटिंग है जहां यह इस प्रकार की चेक को लागू करता है जो डिफ़ॉल्ट रूप से बंद है लेकिन मेरा ग्राहक सक्षम हो सकता है?
एक अंतिम बिंदु। मेरी सेवा पीडीएफ उत्पन्न करने के लिए एसएसआरएस आरडीएलसी का उपयोग करती है। नेट 4 में कुछ बदलाव के कारण, मैं निम्नलिखित config के माध्यम से विरासत सुरक्षा नीति का उपयोग करने के लिए मजबूर सेवा करना होगा:
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true" />
</runtime>
अधिक जानकारी के लिए कारण है कि मैं ऐसा करने की जरूरत पर, इस stackoverflow पोस्ट देखें: Very High Memory Usage in .NET 4.0
महत्वपूर्ण बात यह है कि मैं इसे अपने सभी अन्य ग्राहकों पर भी करता हूं। केवल इस ग्राहक को समस्याएं हैं।
यह समझ में आता है। मैं आज इस पर जांच कर रहा हूं। मेरे एफआईआरएस विचार वास्तव में थे कि विंडोज़ में फीचर के कारण एक असेंबली अवरुद्ध हो रही थी जो ई-मेल या आईई के माध्यम से डाउनलोड की गई फाइलों को असुरक्षित के रूप में ध्वजांकित करती है। मैंने पहले यह मुझे काट दिया है। – RMD
आपका उत्तर बहुत उपयोगी था। यह वास्तव में चीजों को गम करने के लिए अवरुद्ध असेंबली बन गया। फ़ाइल अवरुद्ध करने (गुण -> अनब्लॉक) को हटाने से समस्या हल हो गई। – RMD
@ आरएमडी धन्यवाद! अरे तुम विंडोज़ – JefClaes