web-dev-qa-db-ja.com

「セキュリティ透過メソッド 'System.Web.Http.GlobalConfiguration.get_Configuration()を使用してエラーを解決しますか?

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をどのように有効にできますか?

24
Daniel

テンプレートから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アプリケーション」テンプレートを使用することです。

11
Aliostad

これは、指定されたバージョンのWebAPIのアセンブリの不一致です。 System.Web.Http.WebHostの不一致バージョンを参照していたため、鉱山は失敗していました。だからあなたはできる...

  1. NuGetから最新のWebAPIをインストールする

    -または-

  2. すべてのMicrosoft.AspNet.WebApi.*パッケージが同じバージョンであることを確認してください

27
Nexxas

VSのパッケージマネージャーコンソールで "update-package Microsoft.AspNet.WebApi"を実行して、魅力的なように動作しました。

13
Mav55

Web API ODataのプレリリースバージョンが必要ですか?その場合、他のすべてのWeb APIパッケージを更新して、そのバージョンに一致させる必要があります。そうでなければ、ただ、

install-package 'Microsoft.AspNet.WebApi.OData

-preオプションなし

3

私は問題に直面しましたが、以前のサーバーコードビルドはリリースモードでビルドされ、ビルドはデバッグモードコードでアップロードされています。なので、Releaseモードに切り替えて問題を解決しました。

0
Arun Solanki