Подтвердить что ты не робот

Ошибка ASP.NET Web API после обновления до Visual Studio 2012 RC: метод не найден: "Void System.Net.Http.Headers.HttpHeaders.AddWithoutValidation

После обновления до Visual Studio 2012 я больше не могу обращаться к любому из моих ApiControllers, возникает следующая ошибка:

Server Error in '/' Application.

Method not found: 'Void System.Net.Http.Headers.HttpHeaders.AddWithoutValidation(System.String, System.Collections.Generic.IEnumerable`1<System.String>)'.

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.MissingMethodException: Method not found: 'Void System.Net.Http.Headers.HttpHeaders.AddWithoutValidation(System.String, System.Collections.Generic.IEnumerable`1<System.String>)'.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[MissingMethodException: Method not found: 'Void System.Net.Http.Headers.HttpHeaders.AddWithoutValidation(System.String, System.Collections.Generic.IEnumerable`1<System.String>)'.]
   System.Web.Http.WebHost.HttpControllerHandler.AddHeaderToHttpRequestMessage(HttpRequestMessage httpRequestMessage, String headerName, String[] headerValues) +0
   System.Web.Http.WebHost.HttpControllerHandler.ConvertRequest(HttpContextBase httpContextBase) +248
   System.Web.Http.WebHost.HttpControllerHandler.BeginProcessRequest(HttpContextBase httpContextBase, AsyncCallback callback, Object state) +79
   System.Web.Http.WebHost.HttpControllerHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +48
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +268
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

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

Кто-нибудь знает, как это исправить?

4b9b3361

Ответ 1

У вас есть ссылка на старую версию System.Net.Http в вашем проекте. Чтобы исправить это, перейдите в раздел "Ссылки" в своем проекте, удалите System.Net.Http и добавьте версию, которая поставляется вместе с .NET 4.5. Это должно сделать это.

Хенрик

Ответ 2

Решение этой и других проблем, связанных с RC здесь.

Ответ 3

шаг 1 Удалите приведенные ниже ссылки из вашего проекта:

System.Net.Http, System.Web.Http, System.Web.Http.WebHost, System.Web.Http.Common и System.Net.Http.Formatting

шаг 2 Добавьте вышеперечисленные refefrences (кроме System.Web.Http.Common и System.Net.Http.Formatting) из нижележащего местоположения

  • C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.WebApi.Core.4.0.20505.0\lib\net40

  • C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.WebApi.WebHost.4.0.20505.0\lib\net40

  • C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.Net.Http.2.0.20505.0\lib\net40

и добавьте еще одну новую dll Newtonsoft.Json.dll из

  • C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Newtonsoft.Json.4.5.1\lib\net40

Ответ 4

Это исправило это для меня.

http://forums.asp.net/t/1809919.aspx/1

Метод не найден: 'Void System.Net.Http.Headers.HttpHeaders.AddWithoutValidation(System.String, System.Collections.Generic.IEnumerable`1)'.

Я решил это с помощью следующих шагов. Не уверен, что все они требуются, но это сработало.

В диспетчере пакетов NuGet удалил бета-пакет Web.API. Добавлены ссылки на System.Net.Http, System.Web.Http и System.Web.Http.WebHost(они были удалены предыдущим шагом). Установлен Json.Net через NuGet.

В качестве дополнения, если ваш проект нацелен на версию версии 4.0, вы должны включить новый пакет пакетов API-интерфейса Microsoft ASP.Net из NUGET, чтобы получить зеленый свет для вашей сборки. Json.Net - это зависимость для этих новых пакетов, поэтому вам не нужно устанавливать его отдельно.