通过'System.Web.Mvc.PreApplicationStartCode.Start()'尝试关键方法'System.Web.WebPages.Razor.PreApplicationStartCode.Start()'失败

时间:2013-11-13 10:58:57

标签: asp.net-mvc-4 razor dependencies

我的应用程序工作正常,在我做了一些升级后,我收到了这个错误。

  '/'应用程序中的服务器错误。      
     

安全透明方法“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

我不记得我做过的更新了。有办法解决这个问题吗?

13 个答案:

答案 0 :(得分:71)

我认为问题已经解决,但如果没有,请使用Nuget的这个包:

Install-Package Microsoft.AspNet.Mvc -Version 5.0.0

我浪费了一天的时间来解决这个错误,但是这一行已经完成了我的工作

答案 1 :(得分:13)

尝试过。 。 。 Install-Package Microsoft.AspNet.Mvc -Version 5.0.0

和。 。 。 Install-Package -Id Microsoft.AspNet.WebHelpers

两者都没有成功,最后不得不通过nuget更新所有包。 。工作!

http://www.3dbuzz.com/forum/threads/202082-ASP-net-MVC-Error-before-application-start

  

如果您正在使用visual studio打开nuget包窗口并运行   Update-Package,这会将你的所有dll更新到最新版本。如果   它仍然不起作用,请参阅此页面:   http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2

答案 2 :(得分:7)

在部署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>

为我解决了这个问题。

答案 3 :(得分:6)

对我来说也发生了同样的错误。 通过安装NuGet包

来解决这个问题
  Install-Package -Id  Microsoft.AspNet.WebHelpers

答案 4 :(得分:4)

我遇到了类似的问题,并根据文章Updating Razor 2.0 to 3.0 with Asp.net MVC by by Anthony Fassett

解决了这个问题

我的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>

答案 5 :(得分:2)

就我而言,这是一个不兼容的问题。我有这些蛋糕:

  • Microsoft.AspNet.Mvc版本4.x
  • Microsoft.AspNet.RazorMicrosoft.AspNet.WebPages,版本3.x

我认为将Mvc升级到5.x会有效,但我需要保留Mvc 4.x,因此我必须降级RazorMvc至2.x.为此,您只需安装旧版本,如下所示:

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

降级这些软件包后,第一个错误消失了,但还有另一个与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安装没有更新绑定重定向,应该已经完成​​了。

答案 6 :(得分:1)

此问题有多种解决方案:

  • 按照升级your asp.net solution
  • 的教程进行操作
  • 别忘了删除Microsoft-Web-Helpers dll并安装nuget包Microsoft.AspNet.WebHelpers

然后,确保已升级所有nuget包(使用&#34; Upgrade-Package&#34;)并在web.config中检查您的dll。

当您转换项目时,错误可能是旧DLL中的操作。

答案 7 :(得分: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"

答案 8 :(得分:1)

右键单击项目 - &gt;管理Nuget包以获得解决方案而不是查找

Microsoft.AspNet.Mvc Microsoft.Net.Compilers 更新最新版本

答案 9 :(得分:1)

我通过应用&#34;安装包Microsoft.AspNet.Mvc&#34;解决了我的问题。命令。

之后我用Web API解决了我的项目。

答案 10 :(得分:0)

我升级NuGet包时收到此错误 - &#39; Microsoft.AspNet.Web Pages &#39;版本3.2.3。我正在使用VS2012,启动一个新的vanilla&#39; ASP.NET MVC 4 Web应用程序&#39;使用模板&#39; Internet应用程序&#39;使用Windows身份验证或Windows Azure身份验证。

可能更新与其他组件不兼容,并且还必须升级这些其他组件。其他答案建议更新 Microsoft.AspNet.Mvc Microsoft.Net.Compilers 和/或 Microsoft.AspNet.WebHelpers

答案 11 :(得分:0)

我正在处理 ASP.NET Web API 项目并在添加以下nuget后获取相同的问题 CacheCow.Server.EntityTagStore.SqlServer

它解决了安装这个

的问题
Install-Package Microsoft.AspNet.Mvc

答案 12 :(得分:0)

Install-Package -Id Microsoft.AspNet.WebHelpers

安装包Microsoft.AspNet.Mvc -Version 5.0.0

这对我有用