63

私のアプリケーションは正常に動作していましたが、いくつかのアップグレードを行った後、このエラーが発生しました。

「/」アプリケーションでサーバー エラーが発生しました。


セキュリティの透過的なメソッド ' ' によるSystem.Web.Mvc.PreApplicationStartCode.Start()セキュリティ クリティカルなメソッド ' ' へのアクセスにSystem.Web.WebPages.Razor.PreApplicationStartCode.Start()失敗しました。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.MethodAccessException: セキュリティの透過的なメソッド ' ' によるSystem.Web.Mvc.PreApplicationStartCode.Start()セキュリティ クリティカルなメソッド ' ' へのアクセスにSystem.Web.WebPages.Razor.PreApplicationStartCode.Start()失敗しました。

ソース エラー: 現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。

バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.18055

行った更新を思い出せません。これを修正する方法はありますか?

4

13 に答える 13

9

Mvc が 4 から 5 にアップグレードされたが、web.config を更新していないサイトをデプロイすると、このエラーが発生しました。

これから変更:

<dependentAssembly>
  <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>

これに:

<dependentAssembly>
  <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>

私のために問題を解決しました。

于 2016-04-27T11:22:28.117 に答える
5

同様の問題があり、Anthony Fassett による記事 Updating Razor 2.0 to 3.0 with Asp.net MVC に基づいて解決しました

次のコード ブロックが Web.Config にありませんでした:

<dependentAssembly>
  <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
于 2014-04-16T08:13:06.697 に答える
3

私の場合、それは非互換性の問題でした。これらのパッケージがありました:

  • Microsoft.AspNet.Mvcバージョン 4.x
  • Microsoft.AspNet.RazorおよびMicrosoft.AspNet.WebPages、バージョン 3.x

5.x へのアップグレードMvcはうまくいったと思いますが、Mvc4.x を維持する必要があったため、ダウングレードRazorMvcて 2.xに変更する必要がありました。これを行うには、次のように古いバージョンをインストールするだけです。

Install-package Microsoft.AspNet.WebPages -version 2.0.30506
Install-Package Microsoft.AspNet.Razor -Version 2.0.30506

これらのパッケージをダウングレードした後、最初のエラーは消えましたが、.NET の問題に関連する別のエラーがまだありましたweb.config。Razor のバインド リダイレクトを変更する必要がありました。

<dependentAssembly>
     <assemblyIdentity name="System.Web.Razor" ... />
  <!--bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /-->
     <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>

理由はわかりませんが、Nuget のインストールによってバインディング リダイレクトが更新されませんでした。

于 2016-06-07T14:37:38.707 に答える
1

この問題には複数の解決策があります。

  • asp.net ソリューションのアップグレードに関するチュートリアルに従ってください
  • Microsoft-Web-Helpers dll を削除し、nuget パッケージ Microsoft.AspNet.WebHelpers をインストールすることを忘れないでください。

次に、すべての nuget パッケージをアップグレードしたことを確認し (「Upgrade-Package」を使用)、web.config で dll を確認します。

エラーは、プロジェクトを変換するときの古い DLL のアクションである可能性があります。

于 2014-09-05T14:01:25.813 に答える
1

私の場合、nuget のインストールによって Web.Config が変更されました。

    <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="1.1.0.0" />
  </dependentAssembly>

newVersion="1.1.0.0"** である必要がありますnewVersion="5.1.0.0"

于 2015-01-21T10:15:54.067 に答える
0

NuGet パッケージ ' Microsoft.AspNet.Web Pages ' バージョン 3.2.3をアップグレードしたときに、このエラーを受け取りました。私はVS2012を使用しており、Windows認証またはWindows Azure認証を使用して、テンプレート「インターネットアプリケーション」で新しいバニラ「 ASP.NET MVC 4 Webアプリケーション」を開始しています。

おそらく、更新プログラムは他のコンポーネントと互換性がなく、これらの他のコンポーネントもアップグレードする必要があります。他の回答は、 Microsoft.AspNet.MvcMicrosoft.Net.Compilers、および/またはMicrosoft.AspNet.WebHelpersを更新することを提案しています。

于 2016-04-22T16:02:34.510 に答える