182

Update: same for mvc 4 to mvc 5.

I started a new mvc 4 project and migrated an mvc 3 project in it (controllers/models/scripts etc). While everything compiles now i get the following error:

Attempt by security transparent method 'WebMatrix.WebData.PreApplicationStartCode.Start()' to access security critical method 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport(System.String)' failed.

I can't find anything on the web with this error. The error hits before getting into the application start.

I tried reinstalling all assemblies with nuget, putting a 'clean' web.config to no avail.

Anyone had this problem before?

4

15 回答 15

252

对我来说,这个错误是因为我在从 MVC 4 更新到 MVC 5 后没有安装 Microsoft.AspNet.WebHelpers。它是通过安装 NuGet 包修复的

Install-Package -Id  Microsoft.AspNet.WebHelpers
于 2013-10-24T14:11:07.093 回答
204

如果您收到错误

尝试通过安全透明方法“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
于 2014-03-23T05:39:15.840 回答
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

我还必须从 nuget 安装“Microsoft.AspNet.WebApi.WebHost”包。但就是这样。

哦,我必须创建这个 appSetting:<add key="owin:AutomaticAppStartup" value="false" />

:)

于 2013-10-21T19:39:17.403 回答
14

我尝试了上述所有解决方案,但仍然无法正常工作,直到我发现 web.config 编译元素引用了 WebMatrix.Data 和 WebMatrix.WebData 的 2.0.0.0 版本。将 web.config 中这些条目的版本更改为 3.0.0.0 对我有帮助。

于 2013-11-05T19:05:19.533 回答
11

mvc 4升级到时,我一直在努力解决类似的问题mvc 5

尝试通过安全透明方法“System.Web.WebPages.Administration.SiteAdmin.RegisterAdminModule()”访问安全关键方法“System.Web.WebPages.ApplicationPart..ctor(System.Reflection.Assembly, System.String)”失败。

发布对话框中的删除额外文件复选框为我解决了这个问题。

于 2014-01-04T08:31:03.077 回答
8

重新安装Microsoft.AspNet.WebHelpers对我有用

Update-Package –reinstall Microsoft.AspNet.WebHelpers
于 2014-11-04T13:07:22.900 回答
6

再提一个建议...这是由 MVC 3 项目中的一些旧 dll 在部署服务器上的站点 bin 文件夹中升级到 MVC 5 后引起的。尽管代码库不再使用这些 dll,但它们似乎是导致问题的原因。将其全部清理干净并重新部署,一切正常。

于 2014-05-07T20:45:57.947 回答
5

您还可能得到:

无法加载文件或程序集 'WebMatrix.Data, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

这已移至此包

 Install-Package Microsoft.AspNet.WebPages.Data

在尝试对此问题的任何答案之前和更新软件包之后,您可能应该进行干净的构建

于 2014-04-25T16:52:00.117 回答
3

从 bin 中删除所有文件,然后重建解决方案对我有用。

于 2014-06-04T16:18:15.457 回答
3

这是我解决此问题的方法:

打开 nuget包管理器控制台并安装以下 nuget 包:

Install-Package WebMatrix.Data
Install-Package Microsoft.AspNet.WebHelpers
Update-Package

清理解决方案,重建,我的 asp.net web 应用程序开始工作!

于 2015-08-06T21:45:53.060 回答
1

对我来说,这个错误是由于从 MVC4 升级到 MVC5 后 DotNetOpenAuth 与 MVC5 不兼容引起的。卸载 Microsoft.Web.WebPages.OAuth 解决了这个问题。

于 2013-10-23T11:28:28.217 回答
1

我已将它从我的引用中删除。然后在包管理器控制台中运行它

Install-Package WebMatrix.Data

最后将 WebMatrix.WebData 程序集添加到引用中,并重建项目。它对我有用。我希望它也能解决你的问题。

于 2014-12-25T21:26:09.890 回答
0

我通过 helppages nuget 包安装了 webapi。该软件包用 beta 版本替换了大多数 asp.net mvc 4 二进制文件,这些版本与项目的其余部分不能很好地协同工作。修复是恢复原始的 mvc 4 dll,一切都很好。

于 2013-07-30T08:09:10.837 回答
0

我有同样的问题,我必须更新 MVC Future (Microsoft.AspNet.Mvc.Futures)

Install-Package Microsoft.AspNet.Mvc.Futures
于 2015-10-02T14:21:21.843 回答
-1

对我来说,这个错误通过添加解决了

<system.web>
 <trust level="Full">
 </system.web>

在 web.config 中

于 2019-04-15T22:34:19.693 回答