尝试使用安全透明方法“ WebMatrix. WebData. PreApplicationStartCode. Start ()”

更新: mvc 4至 mvc 5也是如此。

我启动了一个新的 mvc4项目,并在其中迁移了一个 mvc3项目(控制器/模型/脚本等)。现在所有东西都编译了,我得到了下面的错误:

采用安全透明方法的 WebMatrix 尝试。网络数据。PreApplicationStartCode.Start ()’访问安全关键方法‘ System。韦伯。网页。剃刀。WebPageRazorHost.AddGlobalImport (系统。字符串)’失败。

我在网上找不到任何有这个错误的东西。这个错误在应用程序启动之前就出现了。

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

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

104503 次浏览

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

对于任何想要从 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”软件包,仅此而已。

哦,我必须创建这个应用程序设置: <add key="owin:AutomaticAppStartup" value="false" />

:)

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

对我来说,这个错误是因为我没有微软。AspNet.从 MVC4升级到 MVC5后安装的 WebHelpers。通过安装 NuGet 包修复了这个问题

Install-Package -Id  Microsoft.AspNet.WebHelpers

我尝试了以上所有的解决方案,但仍然不能工作,直到我发现 web.config 编译元素引用了 WebMatrix 的2.0.0.0版本。数据与网络矩阵。网络数据。将 web.config 中这些条目的版本更改为3.0.0.0对我很有帮助。

我在将 mvc 4升级到 mvc 5时也遇到过类似的问题:

安全透明方法的系统尝试。韦伯。网页。行政。网站管理。“ RegisterAdminModule ()”访问安全关键方法“ System”。韦伯。网页。申请部分。.Ctor (系统)。反射。装配,系统。字符串)’失败。

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

如果你得到了错误

采用安全透明方法的 WebMatrix 尝试。网络数据。PreApplicationStartCode.Start ()’访问安全关键方法‘ System。韦伯。网页。剃刀。WebPageRazorHost.AddGlobalImport (系统。字符串)’失败。

为了修复此问题,请使用 NuGet 包管理器安装此包。

Install-Package Microsoft.AspNet.WebHelpers

之后,您可能会得到另一个错误

无法加载 WebMatrix. Data version 3.0.0.0程序集

使用 NuGet 包管理器修复此安装包。

Install-Package Microsoft.AspNet.WebPages.Data

你也可以得到:

无法加载文件或程序集“ WebMatrix. Data,Version = 3.0.0.0, 区域性 = 中性,PublicKeyToken = 31bf3856ad364e35’或其中一个 定位的程序集的清单定义没有 匹配程序集引用(来自 HResult T: 0x80131040的异常)

这个已经移到这个包裹里了

 Install-Package Microsoft.AspNet.WebPages.Data

在尝试这个问题的任何答案之前和更新包之后,您可能应该进行一次干净的构建

还有一个建议。 这是由于我从一个 MVC 3项目升级到部署服务器上的站点 bin 文件夹中的 MVC 5后,一些旧的 dll 造成的。尽管这些 dll 不再被代码库使用,但它们似乎引起了问题。清理干净,重新部署,一切正常。

从 bin 中删除所有文件,然后重新构建解决方案,这对我来说很有效。

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

Update-Package –reinstall Microsoft.AspNet.WebHelpers

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

Install-Package WebMatrix.Data

最后添加 WebMatrix. WebData 汇编到引用,并重建项目。它对我很有用。我希望它也能解决你的问题。

我是这样解决这个问题的:

打开 nget 包管理器控制台并安装以下 nget 软件包:

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

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

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

Install-Package Microsoft.AspNet.Mvc.Futures

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

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

在 web.config 中