web-dev-qa-db-ja.com

メソッドが見つかりません: '!! 0 [] System.Array.Empty()'

私はVS 2015 RCとMVCテンプレートを使用して新しいアプリを作成しましたが、コードの行を変更せずにこのエラーが発生しました:

Method not found: '!!0[] System.Array.Empty()'.
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: '!!0[] System.Array.Empty()'.

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: '!!0[] System.Array.Empty()'.]
   SAASApp.BundleConfig.RegisterBundles(BundleCollection bundles) in C:\Proyectos\SAASApp\SAASApp\App_Start\BundleConfig.cs:29
   SAASApp.MvcApplication.Application_Start() in C:\Proyectos\SAASApp\SAASApp\Global.asax.cs:18

[HttpException (0x80004005): Method not found: '!!0[] System.Array.Empty()'.]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +483
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +176
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +350
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +305

[HttpException (0x80004005): Method not found: '!!0[] System.Array.Empty()'.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +661
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +96
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +189

初めてそれが私に起こるので、私は現時点で立ち往生しています

109
Luis Valencia

本番サーバーではこの状況がありましたが、開発マシンではすべて問題ありませんでした。

ターゲットマシンに.NET Framework 4.6をインストールすると、問題が修正されました。

211

パーティーに遅れてすみませんが、TeamCityビルドを介して他の誰かがこの問題を受け取った場合、私たちがしなければならなかったことを説明できます。

.NET 4.6はビルドサーバーにインストールされ(アプリケーションサーバーにはインストールされません)、RunnerTypeはVisual Studio(sln)であり、Visual Studioオプションは2015に設定されました。

これにより、ビルドで4.6が使用されるようになり、ビルドで4.5.2を使用するようにVisual Studioオプションを2013に変更する必要がありました。

23
gautejohan

この状況に直面している他の人のために:

web.configファイルを見ると、<compilation>タグの値targetFrameworkが4.6より前のバージョンに設定されていることがわかります。しかし、実際には、ビルド時に.NET FrameWork 4.6以降(ASP.NET MVC 4.6以降に対応)を介してアプリケーションを公開しました。

したがって、targetFrameworkの値を4.6に変更すると、エラーの形状は次のように変わります。

「targetFramework」属性は現在、インストールされている.NET Frameworkのバージョンより新しいバージョンを参照しています。

これは本当のエラーです。Webアプリの本番環境に適切なバージョンの.Net FrameWorkをインストールすることで、このエラーを取り除くことができます。

9
AmiNadimi

.NET Frameworkを最新(4.7.2)に更新することで問題が解決しました。解決策を提供してくれた@Andrey Kovalenkoに感謝します。

しかし、エラーは次のようではありません、

enter image description here

.NET Frameworkの更新が各顧客に適用されるかどうかはわかりません。この問題は、特にWindows Embedded OSがインストールされたシステムで、実稼働環境でのみ発生しました。

コードベース自体から、動作を克服する他の方法はありますか?

2
Naveen Kumar V

私はこれらのソリューションを試してみましたが成功しませんでした。

私にとっての解決策は、アプリケーションプールに移動し、2.0に切り替え、ブラウザーでサイトを実行し、エラーを確認して(バージョンが間違っているため)、4.0に戻り、「voilà」、Webサイトを開いたことです。

1
Roberto Gentile

私の場合、IIS自体にアクセスできず、.net 2の特別なものだけを持たない単一のメソッドを使用していたときにこの問題が発生していました。

解決策:そのメソッドを抽出し、.net 2.0でクラスライブラリを作成しましたが、動作します。

0
Ricardo França

私の場合、Windows Server 2012 R2に破損した.NETインストールがありました。最新バージョンの.NET(v4.7.1)をインストールする必要があり、サイトは現在機能しています。

0

4.6.xを4.5.2にダウングレードしましたが、正常に機能しました。

0
Bhavesh Patel

遅すぎるかもしれませんが、同じ問題が発生し、以下のように修正されました。 Visual Studio 2015を使用します。web.configの構成compilationは、デフォルトで.NET FrameWork 4.6を指します。 web.configファイルだけを編集することはできませんでした。サーバーに.NET FrameWork 4.6をインストールできず、アプリケーションがそれを使用しない場合。

  1. メニューデバッグ> [プロジェクト名]プロパティ>アプリケーションに進みます。
  2. [ターゲットフレームワーク]ドロップダウンリストから.NET Framework 4.5(またはアプリケーションをサポートし、互換性のあるサーバー)を選択します。
  3. 再構築します。
0