سؤال

مرحبا جميعا.أحاول حل مشكلة يبدو أنها ليست غير شائعة ولست متأكدًا من كيفية العثور على كيفية حل هذه المشكلة للأشخاص.عندما أقوم بتشغيل StructureMap على جهازي من خلال IIS، أحصل على استثناء ويبدو كما يلي:

**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.

لقد ظهر هذا السؤال هنا في SO (https://stackoverflow.com/questions/784666/), في التعليقات على منشور المدونة هذا و قبل عام أو نحو ذلك في القائمة البريدية للخريطة الهيكلية.

مشكلتي هي عدم تشغيله في بيئة استضافة أجنبية.لا يمكنني حتى تشغيله على الصندوق الخاص بي (IIS 7.5، Win7 RC، .NET 3.5).لقد حاولت تكوين الموقع لاستخدام ملف سياسة مخصصة وتم وضع علامة على FileIOPermission بحيث يتمتع بوصول غير مقيد...بدون نرد.إذا كان أي شخص لديه بعض النصائح أو الرابط سيكون موضع تقدير كبير.

تحديثلذلك لا توجد طريقة تجعل هذه هي أفضل طريقة لحل المشكلة، ولكن بعد البحث والنظر في ما ذكره جوشوا، هذه هي الأشياء التي كان علي القيام بها لإنجاح الأمر: StructureMap وأمن الوصول إلى التعليمات البرمجية والحل السيئ للمشكلة.سيكون موضع تقدير حل أفضل.

هل كانت مفيدة؟

المحلول

وهذا خلل، وتم إصلاحه في صندوق السيارة.سيتم تضمينه في الإصدارات 2.6+.قد تحاول بعض الإصدارات السابقة من StructureMap كتابة التجميعات الديناميكية على القرص دون داع، أو تحاول القراءة من نظام الملفات دون داع.

إذا كنت تعمل في بيئة مقيدة لا تسمح بالوصول إلى المسارات الكاملة في نظام الملفات (ASP.NET)، فتأكد من تعيين IgnoreDefaultFile = true عند تكوين الحاوية الخاصة بك.ضع في اعتبارك أن هذا سيؤدي إلى تعطيل القدرة على تحميل تكوين XML من StructureMap.config.

نصائح أخرى

على أية حال، لقد واجهت نفس المشكلة حيث كان لدي سيطرة كاملة على الصندوق وقمت حتى بتعيين كافة الأذونات على الثقة الكاملة.مع IIS 7.5، اضطررت إلى تغيير الهوية المستخدمة لتجمع التطبيقات المحدد إلى NetworkService بدلاً من ApplicationPoolIdentity.بمجرد إعادة تشغيل IIS، نجح الأمر.

لمعلوماتك، أنا أستخدم StructureMap v2.6.1 وواجهت هذه المشكلة.

لا أستخدم تكوين XML، لذا أضفت السطر التالي إلى رمز التكوين الخاص بي، مما أدى إلى حل المشكلة.

IgnoreStructureMapConfig = true;

باستخدام الإصدار الرسمي StructureMap 2.5.4 على نظام التشغيل Windows 7 مع IIS 7.5، ما زلت أواجه هذه المشكلة.تغير ماليوش

  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. الذي قمت بحله باستخدام حل مايك (الذي قمت بإنشاء ملف التصور خطوة بخطوة ).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top