12

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

誰でもこれを修正する方法を知っていますか?

4

4 に答える 4

16

プロジェクトに古いバージョンの System.Net.Http への参照があります。これを修正するには、プロジェクトの「参照」の下に移動し、System.Net.Http を削除して、代わりに .NET 4.5 に付属するバージョンを追加します。それはそれを行う必要があります。

ヘンリク

于 2012-06-02T14:49:17.110 に答える
3

この問題およびその他の RC 関連の問題の解決策は、こちら にあります

于 2012-06-04T16:26:33.753 に答える
2

ステップ1 プロジェクトから以下の参照を削除します。

System.Net.Http、System.Web.Http、System.Web.Http.WebHost、System.Web.Http.Common&System.Net.Http.Formatting

ステップ2 以下の場所から上記の参照(System.Web.Http.CommonとSystem.Net.Http.Formattingを除く)を追加します

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

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

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

からもう1つの新しいdllNewtonsoft.Json.dllを追加します

  1. C:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET MVC 4 \ Packages \ Newtonsoft.Json.4.5.1 \ lib \ net40
于 2012-10-17T12:17:22.107 に答える
1

これで修正されました。

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 Beta パッケージをアンインストールしました。System.Net.Http、System.Web.Http、および System.Web.Http.WebHost への参照を追加しました (これらは前の手順で削除されました)。NuGet 経由で Json.Net をインストールしました。

さらに、プロジェクトがフレームワークの 4.0 バージョンをターゲットにしている場合は、NUGET からの新しい Microsoft ASP.Net Web API パッケージ セットを含めて、ビルドの青信号を取得する必要があります。Json.Net はこれらの新しいパッケージの依存関係であるため、個別にインストールする必要はありません。

于 2012-07-19T10:13:55.507 に答える