ASP.NET: This method cannot be called during the application's pre-start initialization stage

前端 未结 5 1227
旧巷少年郎
旧巷少年郎 2020-11-27 11:02

I\'m trying to get an ASP.NET MVC 3 site running on IIS 6.0.

Currently when I request a page from the server it gives the following error:

Pa

相关标签:
5条回答
  • 2020-11-27 11:14

    Well, I just got this error, and it resulted from having accidentally copied a .cshtml into the root of my project. It wasn't even included in the project. Deleted that and the error went away. This was with MVC3 on IIS7. I imagine some of the people getting this problem are in the same boat.

    0 讨论(0)
  • 2020-11-27 11:16

    @Ek0nomik is right. We migrated from the MembershipProvider to the new ExtendedMembershipProvider allowing us to take advantage of some of the new functionality offered in the WebMatrix namespace. By default Simple Membership is enabled for some reason so we had to disable it explicitly since we didn't want to go as far as using the SimpleMembershipProvider.

    All we had to do was add this to the web.config:

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

    Having Simple Membership enabled caused the Provider initialisation code to execute before the Application_Start handler. Our app structure requires App_Start to be the first thing to execute. Personally I would always expect this but Simple Membership changes this behaviour. Beware.

    0 讨论(0)
  • 2020-11-27 11:25

    After upgrading some of my applications from ASP.NET MVC3 to MVC4 I was getting this error. It was a result of the WebMatrix assemblies (WebMatrix.WebData.dll and WebMatrix.Data.dll). I removed those references and assemblies from the /bin directory and that took care of the issue.

    0 讨论(0)
  • 2020-11-27 11:28

    This is caused by any of a number of Reflection calls being made too early in an Application. It just so happens the Web.Config suggestions in other answers prevented one such Reflection call from being made. In my case however:

    I'm using Entity Framework, and ran update-database. I got:

    This method cannot be called during the application's pre-start initialization phase.

    As it turns out we had code that used a library which was recently modified to get all code in all namespaces/projects. Specifically, it called:

    System.Web.Compilation.BuildManager.GetReferencedAssemblies()
    

    Kaboom. That caused this obscure error. EF Migrations run in a weirdo zone where the application is half running and half not, meaning the above method can never be called by any code Migrations would call on.

    0 讨论(0)
  • 2020-11-27 11:31

    Add this in your web.config (in the appSettings section):

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

    EDIT:

    For the ones who ask why, it is a known issue described in the mvc 3 release notes More details here

    0 讨论(0)
提交回复
热议问题