7

関連情報: .net 4.5 で構築した Web アプリケーションがあります。Azure の Web サイトにデプロイしたかったのですが、.net 4.0 しかサポートしていないため、プロジェクトを .net 4.0 にダウングレードしました。ローカルで実行しても機能します。

Azure に発行すると、次のエラーが発生します。

ファイルまたはアセンブリ 'System.Net.Http' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

SOに関する別の質問が示唆したように、nugetでWeb APIを削除して読み直そうとしましたが、まだ同じ問題があります。
VS のクローズ/オープン、およびクリーン/ビルドを試みました。

4

6 に答える 6

3

同様の問題 (System.Web.Http および System.Net.Http.Formatting) エラーを解決するには、問題参照 (.Net インストール フォルダーを指す) への参照を削除し、パッケージ フォルダー内の参照ファイルに置き換えます。これは、Microsoft.AspNet.WebApi NuGet パッケージによってインストールされました。

于 2013-10-05T05:54:30.053 に答える
2

私も同じ問題を抱えていました。ただし、アセンブリ バージョンの更新、ローカルのコピー、および特定のバージョン設定だけでは問題は解決しませんでした。私のアプリケーション構成では、Web と worker ロールをクラウド サービスにデプロイします。サービスを作成した後、[構成] タブで [オペレーティング システム] を Windows Server 2012 R2 に設定して、.Net Framework 4.5.1 のサポートを取得しました。しかし、エラーはまだ発生しました。

さらに調査したところ、クラウド サービスの *.cscfg ファイルが、あいまいな osFamily 設定 "3" でポータル設定をオーバーライドしていることがわかりました。私がプロジェクトを開始したとき、それは MVC3 上にあり、WebAPI とフレームワーク 4.5.1 はまだありませんでした。当時はosFamily 3が最新でした。

私の最新の展開では、サイトを 4.5.1 フレームワークと MVC5 にアップグレードしました。開発マシンでローカルに動作することを確認しました。しかし、展開後に System.Net.Http.Formatting バージョン 4.0.0.0 が見つからないというエラーが発生して機能しませんでした。後で、ソース エラーを示す展開ログを見ました

「アップロードされたパッケージに必要な NetFx451 という名前の機能は、展開用に選択された OS * では利用できません。」

これは、osFamily 設定を 4 に変更するソリューションに私を導いたブログ記事です。その後、私のサイトは、新たな展開後に機能しました。

http://tech.trailmax.info/2014/02/azure-deployment-the-feature-named-netfx451-that-is-required-by-the-uploaded-package-is-not-available-in-the- os-chosen-for-the-deployment/

于 2014-10-28T19:01:22.327 に答える
0

System.NET.HTTP.dll は、System.dll、System.Core.dll、および mscorlib.dll のみに依存します。

この DLL (System.NET.HTTP.dll) が展開パッケージに含まれていることを確認してください (RDP 接続を実行して、展開フォルダーを確認できます)。参照の「ローカルにコピー」プロパティで再生するか、ルート レベルのプロジェクトにこの dll を含め、プロパティでタイプ「コンテンツ」を設定します

また、System.Net.Http.dll も .NET 2.0 でサポートされています。これにより、問題が発生する可能性があります。したがって、上記に加えて、参照のプロパティ「特定のバージョン」= true を設定してみてください

于 2012-09-03T07:15:21.090 に答える