MVC 4とクラスライブラリの2つのプロジェクトでソリューションを作成しました。ソリューションはコンパイルされ、正常に実行されます。次に、Microsoft.AspNet.WebApi.OData -preをインストールして、OData WebApi機能を導入します。実行すると、実行時に次のエラーが発生します。
セキュリティトランスペアレントメソッド 'System.Web.Http.GlobalConfiguration.get_Configuration()'からセキュリティクリティカルタイプ 'System.Web.Http.HttpConfiguration'にアクセスしようとして失敗しました。
WebApiConfig.Register(GlobalConfiguration.Configuration)がGlobal.asaxで実行されるとき
一度実行すると、パッケージをアンインストールしても解決しないようです。それは明らかにODataコンポーネントを削除しますが、アセンブリが原因となっているものはすべて残します。 -RemoveDependenciesを使用して削除すると、ライブラリ内のすべてのWebApi参照が削除され、作業状態に戻すことができません。
私はどのパッケージ地獄にいますか、そしてバニラMVC4アプリでWebApi ODataをどのように有効にできますか?
テンプレートからMVC 4アプリを作成すると、Web API 4.0がインストールされます。あなたが使うなら
install-package 'Microsoft.AspNet.WebApi.OData -pre
ASP.NET Web API 5.0 rcに依存します。
私の提案は、MVC 4.0テンプレートではなく「空のASP.NET Webアプリケーション」テンプレートを使用することです。
これは、指定されたバージョンのWebAPIのアセンブリの不一致です。 System.Web.Http.WebHost
の不一致バージョンを参照していたため、鉱山は失敗していました。だからあなたはできる...
NuGetから最新のWebAPIをインストールする
-または-
すべてのMicrosoft.AspNet.WebApi.*
パッケージが同じバージョンであることを確認してください
VSのパッケージマネージャーコンソールで "update-package Microsoft.AspNet.WebApi"を実行して、魅力的なように動作しました。
Web API ODataのプレリリースバージョンが必要ですか?その場合、他のすべてのWeb APIパッケージを更新して、そのバージョンに一致させる必要があります。そうでなければ、ただ、
install-package 'Microsoft.AspNet.WebApi.OData
-pre
オプションなし
私は問題に直面しましたが、以前のサーバーコードビルドはリリースモードでビルドされ、ビルドはデバッグモードコードでアップロードされています。なので、Releaseモードに切り替えて問題を解決しました。