2013-08-21 9 views
13

मैंने हाल ही में नए $ विस्तार समर्थन के साथ खेलने के लिए वेबएपी ओडाटा 5.0 फ्रेमवर्क के प्री-रिलीज़ संस्करण को स्थापित किया है। सब ठीक है, लेकिन मुझे App_Start पर एक अजीब अपवाद मिलता है।वेबएपीआई ओडाटा 5.0 बीटा - ग्लोबल कॉन्फ़िगरेशन एक्सेस करना सुरक्षा त्रुटि

Attempt by security transparent method 
'System.Web.Http.GlobalConfiguration.get_Configuration()' 
to access security critical type 'System.Web.Http.HttpConfiguration' failed. 

स्रोत त्रुटि:

Line 12: protected void Application_Start() 
Line 13: { 
Line 14:  WebApiConfig.Register(GlobalConfiguration.Configuration); // <-- 
Line 15: } 

स्टैक ट्रेस: ​​

[TypeAccessException: Attempt by security transparent method 'System.Web.Http.GlobalConfiguration.get_Configuration()' to access 
security critical type 'System.Web.Http.HttpConfiguration' failed.] 
    System.Web.Http.GlobalConfiguration.get_Configuration() +0 
    API.WebApiApplication.Application_Start() in Global.asax.cs:14 

[HttpException (0x80004005): Attempt by security transparent method 'System.Web.Http.GlobalConfiguration.get_Configuration()' to access 
security critical type 'System.Web.Http.HttpConfiguration' failed.] 
    System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +12863325 
    System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +175 
    System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +304 
    System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +404 
    System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +475 

[HttpException (0x80004005): Attempt by security transparent method 'System.Web.Http.GlobalConfiguration.get_Configuration()' to access 
security critical type 'System.Web.Http.HttpConfiguration' failed.] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12880068 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12721257 

गूगल बहुत कम पता चलता है।

+0

आप इस समस्या का समाधान मिला के लिए आदेश "अद्यतन पैकेज Microsoft.AspNet.WebApi" पैकेज प्रबंधक कंसोल में चलाया जाता है की आवश्यकता है? – Gaui

उत्तर

23

भागो पैकेज प्रबंधक कंसोल में आदेश, दिए गए क्रम में निम्नलिखित:

Uninstall-Package Microsoft.AspNet.Mvc.FixedDisplayModes 
Update-Package Microsoft.AspNet.Mvc -Pre 
Update-Package Microsoft.AspNet.WebApi -Pre 
Update-Package Microsoft.AspNet.WebApi.Tracing 

अब, web.config में परिवर्तन निम्नलिखित लागू होते हैं:

  1. अपनी परियोजना के web.config में, ऐप सेटिंग वेबपृष्ठों का अद्यतन मूल्य: 3.0.0.0

  2. वेब.config में सेक्शनटाइम के तहत, प्रत्येक असेंबली के संस्करण को कॉन्फ़िगर करें और इसे अपडेट करें असेंबली का संस्करण आपकी परियोजना में जोड़ा गया। बाद मेरी web.config में अद्यतन विन्यास है:

    < क्रम >
    < xmlns assemblyBinding = " कलश: स्कीमा-माइक्रोसॉफ्ट कॉम: asm.v1 " >
    dependentAssembly < >
    < assemblyIdentity नाम = " System.Web .Helpers " PublicKeyToken = " 31bf3856ad364e35 "/>
    < bindingRedirect oldVersion = " 1.0.0.0-3.0.0.0 " NewVersion = " 3 .0.0.0 "/>
    </dependentAssembly >
    <dependentAssembly>
    < assemblyIdentity नाम = " System.Web.Mvc " PublicKeyToken = " 31bf3856ad364e35 "/>
    < bindingRedirect oldVersion = " 1.0.0.0-5.0.0.0 " NewVersion = " 5.0.0.0 "/>
    </dependentAssembly >
    <dependentAssembly>
    < assemblyIdentity नाम = " System.Web.WebPages " PublicKeyToken = " 31bf3856ad364e35 "/>
    < bindingRedirect oldVersion = " 1.0.0.0-3.0.0.0 " NewVersion = " 3.0.0।0 "/>
    </dependentAssembly >
    <dependentAssembly>
    < assemblyIdentity नाम = " EntityFramework " PublicKeyToken = " b77a5c561934e089 "/>
    < bindingRedirect oldVersion = " 0.0.0.0-5.0.0.0 " NewVersion = " 5.0.0.0 "/>
    </निर्भर एस्सेप्लोर >
    < निर्भर एस्परिपल >,210 < assemblyIdentity नाम = " WebGrease " PublicKeyToken = " 31bf3856ad364e35 "/>
    < bindingRedirect oldVersion = " 0.0.0.0-1.3.0.0 " NewVersion = " 1.3.0.0 "/>
    </dependentAssembly >
    <dependentAssembly>
    < assemblyIdentity नाम = " सिस्टम.Web.Http " publicKeyToken = " 31bf3856ad364e35 " संस्कृति = " तटस्थ "/>
    < bindingRedirect oldVersion = " 0.0.0.0-5.0.0.0 " NewVersion = " 5.0.0.0 "/>
    </dependentAssembly >
    <dependentAssembly>
    < assemblyIdentity नाम = " System.Net.Http.Formatting " PublicKeyToken = " 31bf3856ad364e35 " संस्कृति = " तटस्थ "/>
    < bindingRedirect oldVersion = " 0.0.0.0-5.0.0.0 " NewVersion = " 5.0.0.0 "/>
    </dependentAssembly >
    </assemblyBinding >
    </क्रम >

ओपन दृश्य फ़ोल्डर से web.config। यहां तीन चीजें अपडेट की जा रही हैं:

  1. कॉन्फ़िगरेशन के तहत, रेजर असेंबली के संस्करण 3.0.0.0 के रूप में अद्यतन करें।

  2. system.web.webPages.razor अनुभाग के तहत होस्ट का अद्यतन संस्करण, System.Web.Mvc.MvcWebRazorHostFactory के 3.0.0.0 के रूप में अद्यतन संस्करण।

  3. System.web के पृष्ठ अनुभाग के तहत उल्लिखित कुछ संस्करण संख्याएं हैं। , संस्करण 5.0.0.0

आप वेब एपीआई सहायता पन्ने स्थापित किया है करने के लिए उन सभी को अद्यतन वहाँ रूप में अच्छी तरह से ऊपर विधानसभा विन्यास के लिए जाँच करें।

+1

कमांड ** अद्यतन-पैकेज Microsoft.AspNet.Mvc -Pre ** मुझे निम्न त्रुटि देता है _Update-Package: 'Microsoft.AspNet.Mvc 4.0.20710.0' को 'Microsoft.AspNet.Mvc 5.0.0-rc1' में अपडेट करना विफल । 'Microsoft.AspNet.WebApi.HelpPage' का संस्करण ढूंढने में असमर्थ जो 'माइक्रोसॉफ्ट.एस्पनेट.एमवीसी 5.0.0-आरसी 1' के साथ संगत है ._ –

+0

Thanx आदमी आप अपना दिन बचाते हैं.great ;-) – Sanath

0

मुझे यकीन नहीं है कि इसके लिए सटीक कारण क्या होगा, लेकिन मुझे आमतौर पर यह त्रुटि दिखाई देती है जब nuget संकुल में से एक पुराना संस्करण (पूर्व प्री-रिलीज़) होता है। क्या आप अपने सभी nuget संकुल को अपग्रेड करने का प्रयास कर सकते हैं और देख सकते हैं कि यह दूर हो गया है या नहीं।

11

मुझे यह वही त्रुटि थी।मैंने बस रवि के जवाब को थोड़ा सा tweaked और पाया कि WebApi.OData 5.0.0-rc1 पैकेज को अद्यतन/स्थापित करके webApi पैकेज को अद्यतन करने के लिए मेरे लिए काफी अच्छा काम किया।

Update-Package Microsoft.AspNet.WebApi -Pre 
Install-Package Microsoft.AspNet.WebApi.OData -Version 5.0.0 

मेरा अनुमान है कि कि WebApi.OData पैकेज के प्री-रिलीज़ संस्करण Nuget एक निर्भरता के रूप में निरीक्षण करने के लिए विफल रहता है WebAPI पैकेज के एक नए संस्करण के साथ कुछ निर्भरता है: मैं बस पैकेज प्रबंधक पर इन भाग गया। फिर फिर, मैं तकनीकी रूप से WebApi OData के साथ एक नौसिखिया हूं और अभी तक पैकेज के बारे में बहुत कुछ नहीं जानता लेकिन, हाँ, मैं प्रोजेक्ट को $ विस्तार और $ चुनिंदा कार्यक्षमता और ग्लोबल कॉन्फ़िगरेशन त्रुटि में से कोई भी चला सकता हूं। :)

1

आपको बस इतना करना वी.एस. समाधान

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