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

sqw*_*rty 134 asp.net-mvc asp.net-mvc-3

我正在尝试在IIS 6.0上运行ASP.NET MVC 3站点.

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

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

在这条线上:

<add name="MyMembershipProvider" type="NS.MyMembershipProvider" connectionStringName="MyDatabase" applicationName="/MySite"/>
Run Code Online (Sandbox Code Playgroud)

我完全难过,并且对ASP.NET应用程序生命周期没有太多线索,更不用说6.0和7.0之间的差异了.阅读它上面的MSDN页面似乎没什么帮助.

有没有人有任何见解或任何良好的调查链接?:)

Gre*_*ire 252

在web.config中添加它(在appSettings部分中):

<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false"/>
Run Code Online (Sandbox Code Playgroud)

编辑:

对于谁问为什么的,它是在MVC 3中描述的已知问题发行说明 更多细节在这里

  • 我创建了一个新项目,这个错误没有发生,我不需要添加这些键.在我现有的项目中,我不得不将这些键添加到工作中,为什么? (4认同)
  • 你可以请稍微扩展一下吗?web.config中的位置?钥匙做什么?我无法找到这些密钥的在线文档. (3认同)
  • 我知道了.它会自动定义安全性和成员身份规则,因此您必须在添加自定义规则之前覆盖它们.棘手. (2认同)
  • 为什么?有人可以链接到一些解释/文档? (2认同)

Jus*_*son 39

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

  • @rboarman - 这已经反复修复了它.您确定程序集仍然不在/ bin目录中吗? (2认同)

And*_*age 7

@ Ek0nomik是对的.我们MembershipProvider从新迁移到新版本,ExtendedMembershipProvider允许我们利用WebMatrix命名空间中提供的一些新功能.默认情况下,由于某种原因启用了简单成员身份,因此我们必须明确禁用它,因为我们不想使用它SimpleMembershipProvider.

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

<add key="enableSimpleMembership" value="false"/>
Run Code Online (Sandbox Code Playgroud)

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


Dav*_*ond 6

好吧,我刚收到这个错误,这是因为我不小心将.cshtml复制到我项目的根目录中.它甚至没有被包括在项目中.删除了那个,错误就消失了.这是在IIS7上的MVC3.我想一些遇到这个问题的人都在同一条船上.