Вопрос по asp.net-mvc-4 – Visual Studio 2012 RC Не удалось загрузить тип System.Web.Http.RouteParameter

12

На моем компьютере были установлены бета-версия VS 11, .net 4.5 и MVC 4. Я только что загрузил последнюю версию RC, и теперь я получаю это сообщение об ошибке при попытке запустить веб-проекты. Я попытался переустановить .net 4.5, а также удалить и установить VS 12 RC, но это не сработало. Я попробовал предложениеВот который тоже не работал.

Stack

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 

Edit 6

я использовалfuslogvw и узнал, что проект ссылался наSystem.Web.Http.dll отсюда

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

вместо моего проекта. Переименование этого файла заставило мой проект работать, но я, очевидно, не могу сделать это на своем общем хостинг-сайте.

Я вручную ссылался на DLL из

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

и установите егоCopy to Local, Все еще загружается изgac_msil, Как мне переопределить это?

Ваш Ответ

3   ответа
8

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

в

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

обновление поверх Beta до RC работало на другой машине. Я надеюсь, что это поможет кому-то в будущем.

Я уточню, если найду лучший ответ

System.Web.Http не существует под GAC_MSIL для меня.
Да, это работает. @FatAlbert Убедитесь, что вы заменили все сборки, включая XML
Это не сработало для меня.
9

и я нашел этот вопрос, пока гуглил на ошибку. Когда я посмотрел на установленные окна на моих окнах, я увидел, что было 3 MVC 4 'приложения'. установлены:

MVC 4 VS 2010 Tools MVC 4 MVC 4 (Bundle)

Я удалил & quot; MVC 4 & quot; приложение, а затем мои проекты работали нормально.

Исправлена моя проблема!
Это делает трюк для меня. Благодарю.
спасибо за добавление @roet. Я уже удалил все, что мог найти в тот момент, когда создал этот вопрос. Это не сработало для меня, но я рад, что это сработало для вас. Eonasdan
6

http://www.asp.net/mvc/mvc4 И согласно примечаниям к выпуску: & apos; Вы можете обновить ASP.NET MVC 4 Developer Preview и Beta до версии ASP.NET MVC 4 Release Candidate без удаления. & Apos;

И я сделал именно это и избавился от ошибки.

Причина в том, что ваше приложение указывает на старую бета-версию MVC4 в GAC.

Альтернативой является использование переменной среды DEVPATH, упомянутой по этой ссылке. http://www.christophdebaene.com/blog/2012/04/06/building-the-source-code-of-asp-net-web-api/

Винсент

Я снова обновил свой вопрос. Есть новые идеи? Eonasdan
Я уже попробовал DEVPATH, как я уже упоминал в моем OP. MVC 4 RC поставляется с 2012 RC. Нет возможности скачать это отдельно для 2012 года. Также смотрите последние изменения Eonasdan

Похожие вопросы