我的应用程序工作正常,在我做了一些升级后,我收到了这个错误。
3>'/'应用程序中的服务器错误。
安全透明方法“
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
我不记得我做过的更新了。有办法解决这个问题吗?
答案 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.Razor
和Microsoft.AspNet.WebPages
,版本3.x 我认为将Mvc
升级到5.x会有效,但我需要保留Mvc
4.x,因此我必须降级Razor
和Mvc
至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)
此问题有多种解决方案:
然后,确保已升级所有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
这对我有用