2012-06-07 4 views
12

Avevo VS 11 Beta, .net 4.5 e MVC 4 beta installati sul mio PC. Ho appena scaricato l'ultimo RC e ora ricevo questo messaggio di errore quando provo a eseguire progetti Web. Ho provato a reinstallare .net 4.5 e disinstallare e resinstallare VS 12 RC ma non ha funzionato. Ho provato il suggerimento here che non ha funzionato neanche.visual studio 2012 RC Impossibile caricare il tipo System.Web.Http.RouteParameter

Pila

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 

Modifica 6

ho usato fuslogvw e ho scoperto che il progetto è stato riferimento al System.Web.Http.dll da qui

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

al posto del mio progetto. Rinominare questo file ha reso il mio progetto funzionante, ma ovviamente non posso farlo sul mio sito di hosting condiviso.

ho fatto riferimento manualmente la DLL da

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

e impostarlo su Copy to Local. Ancora carica da gac_msil. Come posso ignorare questo?

risposta

8

Per ora la risposta è di sostituire il dll dalla cartella

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

in

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

riqualificazione sopra la parte superiore della Beta per la RC ha lavorato su un altro macchina. Spero che questo aiuti qualcuno in futuro.

io aggiornare se trovare una risposta migliore

+0

Questo non ha funzionato per me. – FatAlbert

+1

Sì, funziona. @FatAlbert Assicurati di sostituire tutti gli assembly tra cui XML – om471987

+0

System.Web.Http non esiste per me sotto GAC_MSIL. – Kyle

6

ti suggerisco di aggiornare anche da MVC4 Beta a MVC4 RC: http://www.asp.net/mvc/mvc4 E secondo le note di rilascio: 'È possibile aggiornare l'ASP.NET MVC 4 Developer Preview e Beta per ASP.NET MVC 4 Release Candidate senza disinstallare. '

E l'ho fatto e ho eliminato l'errore.

Il motivo è che la tua app punta alla vecchia MVC4 Beta nel GAC.

Un'alternativa sta utilizzando la variabile di ambiente DEVPATH menzionata in questo collegamento. http://www.christophdebaene.com/blog/2012/04/06/building-the-source-code-of-asp-net-web-api/

Vincent

+0

Ho già provato il DEVPATH come menzionato nel mio OP. MVC 4 RC viene fornito con 2012 RC. Non è possibile scaricare questo separatamente per il 2012. Vedi anche le ultime modifiche – Eonasdan

+1

Ho aggiornato nuovamente la mia domanda. Qualche nuova idea? – Eonasdan

9

Ho avuto lo stesso problema, e ha trovato questa domanda mentre googling sull'errore. Quando ho guardato i programmi installati sul mio Windows, ho visto ci sono stati installati 3 MVC 4 'Applicazioni':

  1. MVC 4 VS 2010 Strumenti
  2. MVC 4
  3. MVC 4 (Bundle)

Ho disinstallato l'applicazione "MVC 4" e quindi i miei progetti hanno funzionato correttamente.

+0

grazie per l'aggiunta di @roet. Avevo già disinstallato tutto ciò che potevo trovare al punto in cui avevo creato questa domanda. Non ha funzionato per me, ma sono contento che abbia funzionato per te. – Eonasdan

+0

Questo è il trucco per me. Grazie. – Dariusz

+0

risolto il mio problema! – jray0039