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

更新:同样的mvc 4到mvc 5。

我开始了一个新的mvc 4项目,并在其中移植了一个mvc 3项目(controllers / models / scripts等)。 虽然一切编译现在我得到以下错误:

尝试通过安全透明方法“WebMatrix.WebData.PreApplicationStartCode.Start()”访问安全关键方法“System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport(System.String)”失败。

我在网上找不到有这个错误的东西。 进入应用程序启动之前,错误命中。

我试着用nuget重新安装所有的程序集,把一个'干净'的web.config没有用。

任何人有过这个问题吗?

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

Install-Package -Id Microsoft.AspNet.WebHelpers 

如果你得到错误

尝试通过安全透明方法“WebMatrix.WebData.PreApplicationStartCode.Start()”访问安全关键方法“System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport(System.String)”失败。

为了解决这个安装这个包使用NuGet包pipe理器。

 Install-Package Microsoft.AspNet.WebHelpers 

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

无法加载WebMatrix.Data版本3.0.0.0程序集

修复这个安装这个包使用NuGet包pipe理器。

 Install-Package Microsoft.AspNet.WebPages.Data 

对于任何尝试从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”包。 但就是这样。

哦,我不得不创build这个appSetting: <add key="owin:AutomaticAppStartup" value="false" />

🙂

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

升级mvc 4mvc 5时,我一直在遇到类似的问题:

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

发布对话框中的删除额外文件checkbox为我解决了它。

重新安装Microsoft.AspNet.WebHelpers为我工作

 Update-Package –reinstall Microsoft.AspNet.WebHelpers 

还有一个build议…在部署服务器上的站点bin文件夹中升级到MVC 5之后,这是由MVC 3项目中的一些老的dll造成的。 即使这些DLL不再被代码库使用,他们似乎是造成这个问题。 清理全部并重新部署,并没有问题。

您也可能得到:

无法加载文件或程序集“WebMatrix.Data,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其某个依赖项。 定位的程序集清单定义与程序集引用不匹配。 (来自HRESULT的exception:0x80131040)

这已经转移到这个包

  Install-Package Microsoft.AspNet.WebPages.Data 

在尝试对这个问题的任何答案之前以及在更新包之前,你应该做一个干净的构build

这是我如何解决这个问题:

打开nuget 包pipe理器控制台并安装下面的nuget包:

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

清理解决scheme,重build和我的asp.net Web应用程序开始工作!

从bin中删除所有文件,然后重新构build解决scheme为我工作。

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

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

 Install-Package WebMatrix.Data 

最后添加WebMatrix.WebData程序集到引用,并重build项目。它为我工作,我希望它也解决了你的问题。

我通过helppages nuget包安装了webapi。 该软件包将大部分asp.net mvc 4二进制文件replace为与testing版本不兼容的beta版本。 修复是恢复原来的MVC 4 DLL,一切都很好。

我有同样的问题,我不得不更新MVC未来(Microsoft.AspNet.Mvc.Futures)

 Install-Package Microsoft.AspNet.Mvc.Futures