6
Server Error in '/' Application.

これをトラブルシューティングするのに良いものは何ですか?global.asaxのすべてをデバッグで実行し、エラーは発生しません。

Operation could destabilize the runtime.

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.Security.VerificationException: Operation could destabilize the runtime.

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: 


[VerificationException: Operation could destabilize the runtime.]
   System.Web.Mvc.Razor.MvcWebPageRazorHost.GetRidOfNamespace(String ns) +32
   System.Web.Mvc.Razor.MvcWebPageRazorHost..ctor(String virtualPath, String physicalPath) +199
   System.Web.Mvc.MvcWebRazorHostFactory.CreateHost(String virtualPath, String physicalPath) +113
   System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfigCore(RazorWebSectionGroup config, String virtualPath, String physicalPath) +422
   System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(String virtualPath, String physicalPath) +228
   System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(String virtualPath) +38
   System.Web.WebPages.Razor.RazorBuildProvider.CreateHost() +51
   System.Web.WebPages.Razor.RazorBuildProvider.get_Host() +56
   System.Web.WebPages.Razor.RazorBuildProvider.EnsureGeneratedCode() +92
   System.Web.WebPages.Razor.RazorBuildProvider.get_CodeCompilerType() +54
   System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) +59
   System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() +209
   System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +15
   System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +9929933
   System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +299
   System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +103
   System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) +165
   System.Web.Compilation.BuildManager.GetObjectFactory(String virtualPath, Boolean throwIfNotFound) +33
   System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.FileExists(String virtualPath) +40
4

2 に答える 2

4

私のプロジェクトは.Net 4.5ですが、まったく同じ問題がありました。ASP.NET MVC 3 プロジェクトを ASP.NET MVC 4にアップグレードするの手順 7 に従って解決しました。

次のようにここにコピーされます。

7. プロジェクトが以前のバージョンの ASP.NET MVC を使用してコンパイルされたサードパーティ ライブラリを参照している場合は、ルートの Web.config ファイルを開き、構成セクションの下に次の 3 つの bindingRedirect 要素を追加します。

 <configuration>
  <!--... elements deleted for clarity ...-->

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" 
             publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" 
             publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" 
             publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
于 2013-06-11T01:50:42.990 に答える
3

それは非常に奇妙なことです-そして提供された情報はそれを再現するのに十分ではありません...それであなたが見るものにつながるかもしれないいくつかのこと:

  • Intellitrace(オフにして、役立つかどうかを確認してください)
  • 使用されている「古いコントロール」(特にV 1.1)をコメントアウトして、それが役立つかどうかを確認します
  • Trustlevel、AssemblyInfo.csでに変更し[assembly: SecurityRules(SecurityRuleSet.Level1)]、それが役立つかどうかを確認します

また、.NET 4.5ランタイムのバグである可能性があります。これは、.NET 4ランタイムのドロップイン置換としてインストールされ、コードが.NET4のみを対象としている場合でも使用されます。

リンクされた記事から、.Net 4.5 / 4.0ランタイムへの修正は、Microsoftによって修正プログラムとして作成されました:http ://support.microsoft.com/kb/2748645

于 2012-08-31T17:15:46.473 に答える