2014-07-17 10 views
5

के साथ UnityPerRequestHttpModule पंजीकृत करते समय अपवाद I MVC5 के साथ यूनिटी 3 का उपयोग करता है, और प्रति अनुरोध जीवन समय प्रबंधक की आवश्यकता होती है। हालांकि, जब मैंने वेब ऐप लॉन्च किया, तो मुझे सर्वर त्रुटि मिली कि "एप्लिकेशन प्रारंभ होने के बाद मॉड्यूल पंजीकृत नहीं कर सकता है।" समस्या DynamicModuleUtility के कारण होती है। इस समस्या को हल कैसे करें?एमवीसी 5

public static void Start() 
{ 
    var container = UnityConfig.GetConfiguredContainer(); 

    FilterProviders.Providers.Remove(FilterProviders.Providers.OfType<FilterAttributeFilterProvider>().First()); 
    FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(container)); 
    DependencyResolver.SetResolver(new UnityDependencyResolver(container)); 

    //use per request life time manager 
    DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule)); 
} 
+1

कभी हल किया है? –

उत्तर

1

एमवीसी के लिए, आप इसे App_Start फ़ोल्डर में एक कक्षा में रखना चाहते हैं। यदि आप एमवीसी के लिए एक न्यूजेट पैकेज के रूप में एकता जोड़ते हैं, तो मुझे लगता है कि इसे उस फ़ोल्डर में यूनिटीएमवीसीएक्टिवेटर नामक एक क्लास बनाना चाहिए।

0

मुझे एक ही समस्या थी।

DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule)); 

और Unity.Mvc.Activator.cs

// TODO: Uncomment if you want to use PerRequestLifetimeManager 
      Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule)); 
8

को यह जोड़ने मैं एक ही समस्या थी: मैं निम्नलिखित UnityConfig.cs से निकाल कर इस को हल किया। मेरी समस्या यह थी:

GlobalAsax.Aplication_Start() विधि में मैंने लिखा था।

UnityMvcActivator.Start(); 

जब मैंने इसे हटा दिया, तो सबकुछ काम करता था। जब आप UnityMvcActivator वर्ग का उपयोग करें, प्रारंभ पद्धति पहले से ही एनोटेशन के माध्यम से कहा जाता है:

[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(TrackingServer.App_Start.UnityWebActivator), "Start")] 

तो तुम फिर से फाइल Global.asax में UnityMvcActivator तरीकों कॉल करने के लिए की जरूरत नहीं है।

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