安全透明方法'WebMatrix.WebData.PreApplicationStartCode.Start()'尝试

时间:2013-07-29 14:23:46

标签: asp.net-mvc

更新:mvc 4与mvc 5相同。

我启动了一个新的mvc 4项目,并在其中迁移了一个mvc 3项目(控制器/模型/脚本等)。现在一切都编译了,我得到以下错误:

  

尝试使用安全透明方法'WebMatrix.WebData.PreApplicationStartCode.Start()'来访问安全关键方法'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport(System.String)'失败。

我在网上找不到任何有关此错误的内容。在进入应用程序开始之前错误命中。

我尝试使用nuget重新安装所有程序集,将“干净”的web.config无效。

以前有人遇到过这个问题吗?

15 个答案:

答案 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中