2009-10-23 18 views
5

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

**Description**: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. 
**Exception Details**: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. 

यह सवाल इतना (https://stackoverflow.com/questions/784666/), in the comments on this blog post और a year or so ago on the structuremap mailing list पर यहाँ आ गया है।

मेरी समस्या इसे विदेशी होस्टिंग वातावरण में नहीं चल रही है। मैं इसे अपने स्वयं के बॉक्स (आईआईएस 7.5, विन 7 आरसी, .NET 3.5) पर चलाने के लिए भी नहीं मिल सकता। मैंने कस्टम नीति फ़ाइल का उपयोग करने के लिए साइट को कॉन्फ़िगर करने का प्रयास किया है और FileIOPermission को अप्रतिबंधित पहुंच के लिए चिह्नित किया गया है ... कोई पासा नहीं। अगर किसी के पास कुछ सुझाव या लिंक हैं तो इसकी सराहना की जाएगी। StructureMap, Code Access Security and a Bad Solution to a Problem:

अद्यतन तो वहाँ कोई रास्ता नहीं है कि इस समस्या को हल करने का सबसे अच्छा तरीका है, लेकिन चारों ओर से खुदाई और यहोशू क्या उल्लेख में देखने के बाद, इन बातों मैं यह काम कर रहा पाने के लिए क्या करना पड़ा है। एक बेहतर समाधान की सराहना की जाएगी।

+0

स्वीकृत उत्तर में उल्लेख किया गया है, इसे संभालने का तरीका स्ट्रक्चर मैप में कोड परिवर्तन बन गया है। कोई आईआईएस विन्यास परिवर्तन आवश्यक थे। – Mallioch

उत्तर

0

यह एक बग है, और ट्रंक में तय किया गया है। इसे 2.6+ रिलीज़ में शामिल किया जाएगा। स्ट्रक्चर मैप के कुछ पुराने संस्करण या तो डिस्क पर गतिशील असेंबली को अनावश्यक रूप से लिखने का प्रयास करेंगे, या फाइल सिस्टम से अनावश्यक रूप से प्रयास करने का प्रयास करेंगे।

यदि आप एक प्रतिबंधित वातावरण में चल रहे हैं जो फाइल सिस्टम (एएसपी.नेट) में पूर्ण पथ तक पहुंच की अनुमति नहीं देता है, तो सुनिश्चित करें कि जब आप अपने कंटेनर को कॉन्फ़िगर करते हैं तो IgnoreDefaultFile = true सेट करना सुनिश्चित करें। ध्यान रखें कि यह स्ट्रक्चर मैप.कॉन्फिग से एक्सएमएल कॉन्फ़िगरेशन लोड करने की क्षमता को अक्षम कर देगा।

+0

मैं संस्करण 2.5.3 का उपयोग कर रहा हूँ। मैंने इसे स्रोत से नहीं बनाया। – Mallioch

2

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

+0

इससे मेरे लिए समस्या हल हो गई। –

0

आईआईएस 7.5 के साथ विंडोज 7 पर आधिकारिक संरचना मैप 2.5.4 बिल्ड का उपयोग करके मुझे अभी भी इस समस्या का सामना करना पड़ा। Mallioch के परिवर्तन

ObjectFactory.Initialize(x => 
    { 
     x.UseDefaultStructureMapConfigFile = false; 
     x.IgnoreStructureMapConfig = true; 

FileIOPermission अपवाद को हल करने के लिए आवश्यक था, लेकिन मैं तो Request for the permission of type ‘System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed. जो मैं माइक समाधान का उपयोग कर (जिसके लिए मैं एक step-by-step visualization बना लिया है) का समाधान प्राप्त किया।

1

एफवाईआई, मैं स्ट्रक्चर मैप v2.6.1 का उपयोग कर रहा हूं और इस समस्या में भाग गया।

मैं एक एक्सएमएल कॉन्फ़िगरेशन का उपयोग नहीं करता, इसलिए मैंने अपनी कॉन्फ़िगरेशन कोड में निम्न पंक्ति जोड़ा, जिसने समस्या को ठीक किया।

IgnoreStructureMapConfig = true; 
संबंधित मुद्दे