更新:mvc 4与mvc 5相同。
我启动了一个新的mvc 4项目,并在其中迁移了一个mvc 3项目(控制器/模型/脚本等)。现在一切都编译了,我得到以下错误:
尝试使用安全透明方法'WebMatrix.WebData.PreApplicationStartCode.Start()'来访问安全关键方法'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport(System.String)'失败。
我在网上找不到任何有关此错误的内容。在进入应用程序开始之前错误命中。
我尝试使用nuget重新安装所有程序集,将“干净”的web.config无效。
以前有人遇到过这个问题吗?
答案 0 :(得分:234)
对我来说,这个错误是因为我从MVC 4更新到MVC 5后没有安装Microsoft.AspNet.WebHelpers。它是通过安装NuGet包修复的
Install-Package -Id Microsoft.AspNet.WebHelpers
答案 1 :(得分:202)
如果您收到错误
尝试使用安全透明方法'WebMatrix.WebData.PreApplicationStartCode.Start()'来访问安全关键方法'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport(System.String)'失败。
为了使用NuGet包管理器修复此安装此包。
Install-Package Microsoft.AspNet.WebHelpers
之后,可能会出现另一个错误
无法加载WebMatrix.Data版本3.0.0.0程序集
使用NuGet包管理器修复此安装此包。
Install-Package Microsoft.AspNet.WebPages.Data
答案 2 :(得分:19)
对于试图从MVC 4升级到MVC5的任何登陆此处的人,我都可以按照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上的说明解决此问题。
我还必须安装" Microsoft.AspNet.WebApi.WebHost"来自nuget的包裹。但那就是它。
哦,我必须创建这个appSetting:<add key="owin:AutomaticAppStartup" value="false" />
:)
答案 3 :(得分:14)
我尝试了上述所有解决方案,但在我发现web.config编译元素引用了WebMatrix.Data和WebMatrix.WebData的2.0.0.0版之前,它仍然不起作用。将web.config中这些条目的版本更改为3.0.0.0帮助了我。
答案 4 :(得分:10)
将mvc 4
升级为mvc 5
时,我一直在努力解决类似的问题:
尝试使用安全透明方法'System.Web.WebPages.Administration.SiteAdmin.RegisterAdminModule()'来访问安全关键方法'System.Web.WebPages.ApplicationPart..ctor(System.Reflection.Assembly,System.String) '失败了。
发布对话框中的删除额外文件复选框为我解决了这个问题。
答案 5 :(得分:8)
重新安装Microsoft.AspNet.WebHelpers
适用于我
Update-Package –reinstall Microsoft.AspNet.WebHelpers
答案 6 :(得分:6)
还有一个建议...... 这是由部署服务器上的站点bin文件夹中升级到MVC 5后来自MVC 3项目的一些旧dll引起的。即使代码库不再使用这些dll,它们似乎也会导致问题。把它全部清理干净并重新部署,一切都很好。
答案 7 :(得分:5)
你也可以得到:
无法加载文件或程序集'WebMatrix.Data,Version = 3.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个 依赖。定位程序集的清单定义没有 匹配程序集引用。 (HRESULT异常:0x80131040)
这已转移到此包
Install-Package Microsoft.AspNet.WebPages.Data
在尝试此问题的任何答案之前以及更新软件包之后,您应该做一个干净的构建
答案 8 :(得分:3)
以下是我解决此问题的方法:
打开nuget 包管理器控制台并安装以下nuget包:
Install-Package WebMatrix.Data
Install-Package Microsoft.AspNet.WebHelpers
Update-Package
清理解决方案,重建,我的asp.net网络应用程序开始工作!
答案 9 :(得分:2)
从bin中删除所有文件然后重建解决方案对我有用。
答案 10 :(得分:1)
对我来说,这个错误是由于从MVC4升级到MVC5后DotNetOpenAuth与MVC5不兼容造成的。卸载Microsoft.Web.WebPages.OAuth修复了问题。
答案 11 :(得分:1)
我已从引用中删除它。然后在程序包管理器控制台中运行它
Install-Package WebMatrix.Data
最后将WebMatrix.WebData程序集添加到引用中,并重建项目。它对我有用。我希望它也能解决你的问题。
答案 12 :(得分:0)
我通过helppages nuget包安装了webapi。该软件包取代了大多数具有beta版本的asp.net mvc 4二进制文件,这些版本与项目的其余部分不能很好地协同工作。修复是恢复原来的mvc 4 dll,一切都很好。
答案 13 :(得分:0)
我有同样的问题,我不得不更新MVC Future(Microsoft.AspNet.Mvc.Futures)
Install-Package Microsoft.AspNet.Mvc.Futures
答案 14 :(得分:0)
对我来说,添加此错误即可解决
<system.web>
<trust level="Full">
</system.web>
在web.config中