2012-06-07 14 views
12

मेरे पास वीएस 11 बीटा, नेट 4.5 और एमवीसी 4 बीटा मेरे पीसी पर स्थापित था। मैंने अभी नवीनतम आरसी डाउनलोड की है और अब जब मैं वेब प्रोजेक्ट चलाने की कोशिश करता हूं तो मुझे यह त्रुटि संदेश मिलता है। मैंने .NET 4.5 को पुनर्स्थापित करने और VS 12 आरसी को अनइंस्टॉल करने और पुनर्स्थापित करने का प्रयास किया लेकिन यह काम नहीं किया है। मैंने सुझाव here का प्रयास किया जो या तो काम नहीं करता था।विजुअल स्टूडियो 2012 आरसी टाइप नहीं कर सका System.Web.Http.Route पैरामीटर

ढेर

Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.TypeLoadException: Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 

Source Error: 


Line 26:     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
Line 27:   ); 
Line 28:   } 
Line 29:  } 
Line 30: } 


Source File: c:\projects\testNew\testNew\App_Start\RouteConfig.cs Line: 28 

Stack Trace: 


[TypeLoadException: Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.] 
    testNew.RouteConfig.RegisterRoutes(RouteCollection routes) in c:\projects\testNew\testNew\App_Start\RouteConfig.cs:28 
    testNew.MvcApplication.Application_Start() in c:\projects\testNew\testNew\Global.asax.cs:25 

[HttpException (0x80004005): Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.] 
    System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +9841101 
    System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118 
    System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172 
    System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336 
    System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296 

[HttpException (0x80004005): Could not load type 'System.Web.Http.RouteParameter' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9850940 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254 


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17626 

संपादित 6

मैं fuslogvw का इस्तेमाल किया और पता चला कि परियोजना System.Web.Http.dll

यहां से
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.Http\v4.0_4.0.0.0__31bf3856ad364e35 
अपने प्रोजेक्ट के बजाय

संदर्भित किया गया था। इस फ़ाइल का नाम बदलने से मेरा प्रोजेक्ट काम करता है लेकिन मैं स्पष्ट रूप से अपनी साझा होस्टिंग साइट पर ऐसा नहीं कर सकता।

मैं मैन्युअल रूप से

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies 

dll जिक्र किया गया और Copy to Local के लिए यह निर्धारित किया है। फिर भी यह gac_msil से लोड होता है। मैं इसे कैसे ओवरराइड कर सकता हूं?

उत्तर

8

अभी के लिए जवाब बीटा के शीर्ष पर

C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.Http\v4.0_4.0.0.0__31bf3856ad364e35 

उन्नयन में फ़ोल्डर

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies 

से dll को बदलने के लिए है आर सी के लिए एक और पर काम किया मशीन। मुझे उम्मीद है कि यह भविष्य में किसी की मदद करेगा।

अगर मैं एक बेहतर जवाब

+0

यह मेरे लिए काम नहीं किया। – FatAlbert

+1

हां यह काम करता है। @FatAlbert सुनिश्चित करें कि आप एक्सएमएल – om471987

+0

System.Web.Http सहित सभी असेंबली को प्रतिस्थापित करते हैं, मेरे लिए GAC_MSIL के नीचे मौजूद नहीं है। – Kyle

6

मैं सुझाव है कि आप भी MVC4 बीटा से MVC4 आर सी में अपग्रेड करें: http://www.asp.net/mvc/mvc4 और विज्ञप्ति के अनुसार नोट: 'तुम स्थापना रद्द करने के बिना ASP.NET MVC 4 डेवलपर पूर्वावलोकन और ASP.NET MVC 4 रिलीज़ उम्मीदवार बीटा उन्नयन कर सकते हैं। '

और मैंने बस यही किया और त्रुटि से छुटकारा पा लिया।

कारण यह है कि आपका ऐप जीएसी में पुराने एमवीसी 4 बीटा को इंगित कर रहा है।

एक विकल्प इस लिंक पर उल्लिखित DEVPATH पर्यावरण चर का उपयोग कर रहा है। http://www.christophdebaene.com/blog/2012/04/06/building-the-source-code-of-asp-net-web-api/

विन्सेंट

+0

मैंने पहले ही अपने ओपी में उल्लेख किए गए DEVPATH की कोशिश की है। एमवीसी 4 आरसी 2012 आरसी के साथ आता है। 2012 के लिए इसे अलग से डाउनलोड करने का कोई विकल्प नहीं है। नवीनतम संपादन – Eonasdan

+1

को भी देखें, मैंने फिर से अपना प्रश्न अपडेट किया। कोई नया विचार? – Eonasdan

9

लगता है मैं एक ही समस्या थी, और जब तक त्रुटि पर googling इस सवाल पाया मैं अपडेट करेंगे। जब मैं अपने खिड़कियों पर इंस्टॉल किए गए प्रोग्राम को देखा, मैंने देखा कि वहाँ थे 3 MVC 4 'अनुप्रयोगों' स्थापित:

  1. MVC 4 VS 2010 उपकरण
  2. MVC 4
  3. MVC 4 (बंडल)

मैंने "एमवीसी 4" एप्लिकेशन को अनइंस्टॉल किया और फिर मेरी परियोजनाओं ने ठीक काम किया।

+0

@roet जोड़ने के लिए धन्यवाद। मैंने इस सवाल को बनाए गए बिंदु पर मुझे जो कुछ भी मिल सकता था, उसे पहले ही अनइंस्टॉल कर दिया था। यह मेरे लिए काम नहीं करता है लेकिन मुझे खुशी है कि यह आपके लिए काम करता है। – Eonasdan

+0

यह मेरे लिए चाल है। धन्यवाद। – Dariusz

+0

मेरी समस्या फिक्स्ड! – jray0039

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