ASP.NET:在应用程序的预启动初始化阶段不能调用此方法

我正在尝试获取在IIS 6.0上运行的ASP.NET MVC 3网站。

目前,当我从服务器请求一个页面时,会出现以下错误:

parsing器错误消息:在应用程序的预启动初始化阶段,无法调用此方法。

在这一行上:

<add name="MyMembershipProvider" type="NS.MyMembershipProvider" connectionStringName="MyDatabase" applicationName="/MySite"/> 

我完全被难住了,对ASP.NET应用程序生命周期没有太多线索,更不用说6.0和7.0之间的区别了。 通过阅读MSDN网页似乎没有太大的帮助。

有没有人有任何洞察力或任何良好的联系进行调查? 🙂

添加这个在你的web.config(在appSettings部分):

 <add key="enableSimpleMembership" value="false"/> <add key="autoFormsAuthentication" value="false"/> 

编辑:

对于那些问为什么,这是mvc 3 发行说明中所述的一个已知问题

将我的一些应用程序从ASP.NET MVC3升级到MVC4后,我得到这个错误。 这是WebMatrix程序集(WebMatrix.WebData.dll和WebMatrix.Data.dll)的结果。 我从/ bin目录中删除了这些引用和程序集,并处理了这个问题。

@ Ek0nomik是对的。 我们从MembershipProvider迁移到新的ExtendedMembershipProvider使我们能够利用WebMatrix名称空间中提供的一些新function。 默认情况下,由于某种原因,Simple Membership被启用,所以我们不得不明确地禁用它,因为我们不想使用SimpleMembershipProvider

我们所要做的只是将其添加到web.config中:

 <add key="enableSimpleMembership" value="false"/> 

启用简单成员资格会导致Provider初始化代码在Application_Start处理程序之前执行。 我们的应用程序结构要求App_Start是第一个要执行的东西。 我个人总是期望这个,但简单的成员资格改变了这种行为。 谨防。

那么,我刚刚得到这个错误,并且是由于意外地将一个.cshtml复制到了我的项目的根目录中而导致的。 甚至没有包含在这个项目中。 删除了,错误消失了。 这是与IIS7上的MVC3。 我想有些人得到这个问题是在同一条船上。

这是由于应用程序中的任何一个Reflection调用太早造成的。 它只是发生Web.Config在其他答案的build议阻止了一个这样的reflection调用。 但在我的情况下:

我正在使用entity framework,并运行update-database 。 我有:

在应用程序的预启动初始化阶段不能调用此方法。

事实certificate,我们的代码使用了一个最近修改过的库来获取所有命名空间/项目中的所有代码。 具体来说,它叫:

 System.Web.Compilation.BuildManager.GetReferencedAssemblies() 

KABOOM。 这造成了这个模糊的错误。 EF Migrations运行在应用程序运行一半的怪异区域,意味着上述方法永远不会被任何代码调用。迁移将调用。