ソリューション内にMVC 4 Web APIアプリケーションを作成しましたが、現在2つのエラーが発生しているため、助けが必要です。
「System.Web.Http.HttpConfiguration」には「MapHttpAttributeRoutes」の定義が含まれておらず、「System.Web.Http.HttpConfiguration」タイプの最初の引数を受け入れる拡張メソッド「MapHttpAttributeRoutes」が見つかりません(usingディレクティブがありませんか?またはアセンブリ参照?)
このエラーは次のコードで発生します
ファイル:WebApiConfig.cs(App_Startフォルダー)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using System.Web;
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
もう1つは、Global.asaxにあります
「System.Web.Http.GlobalConfiguration」には「Configure」の定義が含まれていません
ファイル:Global.asax.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Http.WebHost;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
[〜#〜] update [〜#〜]
Nugetを介してWebAPI WebHost(@ sa_ddam213の提案)をインストールすると、いくつかの問題は解決しますが、アプリケーションを実行するとこのエラーが発生します
ファイルまたはアセンブリ 'System.Net.Http'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません
Web.configファイルにはアセンブリがあります
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.0.0"/>
</dependentAssembly>
MVCを含むプロジェクト内のいくつかのnugetパッケージをアンインストールして、もう一度インストールします。解決しました。助けてくれてありがとう。
Web APIを強制的に再インストールすると、次のことが可能になります。
update-package Microsoft.aspnet.webapi -reinstall
やった:
get-project <project_name> | uninstall-Package Microsoft.AspNet.WebApi.WebHost -force
その後再インストール(特定のバージョンは他のプロジェクトのものと一致する)
get-project <project_name> | install-Package Microsoft.AspNet.WebApi.WebHost -Version 5.2.2
これで問題は解決しました。
NuGetパッケージを更新します。私のために働いた。
nugetmanager
コンソールで次のコマンドを実行して、パッケージを更新してください。
update-package Microsoft.aspnet.webapi.webhost -reinstall
具体的には、私はTFSからワークスソリューションの誰かをダウンロードし、エラーが発生しました
System.Web.Http.HttpConfiguration' does not contain a definition for 'MapHttpAttributeRoutes' and no extension method 'MapHttpAttributeRoutes'
私はABOUT TOでWeb APIの再インストールを進めましたが、アイテムをインストールする順序の依存関係チェーンが少しドラマチックになってしまうという過去の経験を知っています。
JSONは、更新されたJSONフォースを見たり、別のパッケージの新しいバージョンをアンインストールしたり、古いバージョンをインストールしたりするので、「ベストだと思っていたので、ヒットまたはミスします。
私にとってPDATE JSON nugetを介して私がしなければならなかったすべてでした。
1)ソリューションフォルダーpackages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45でSystem.Web.Http.dllが利用可能かどうかを確認します。そこにあるはずです。使用できない場合は、実行中の他のプロジェクトパッケージフォルダーからコピーします。 2)プロジェクトからSystem.Web.Http.dllの参照を削除します。 3)packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Web.Http.dllにある新しい.dllをポイントして、新しい参照を追加します