asp.net mvc - que - ASP.NET: no se puede llamar a este método durante la etapa de inicialización previa al inicio de la aplicación
que es razor en español (5)
Estoy tratando de ejecutar un sitio ASP.NET MVC 3 en IIS 6.0.
Actualmente, cuando solicito una página del servidor, aparece el siguiente error:
Mensaje de error del analizador: no se puede llamar a este método durante la etapa de inicialización previa al inicio de la aplicación.
en esta línea:
<add name="MyMembershipProvider" type="NS.MyMembershipProvider" connectionStringName="MyDatabase" applicationName="/MySite"/>
Estoy completamente perplejo y no tengo mucha idea sobre el ciclo de vida de la aplicación ASP.NET, y mucho menos las diferencias entre 6.0 y 7.0. Leer las páginas de MSDN no parece haber sido de mucha ayuda.
¿Alguien tiene alguna idea o algún enlace bueno para la investigación? :)
@ Ek0nomik tiene razón. Migramos de MembershipProvider
al nuevo ExtendedMembershipProvider
lo que nos permite aprovechar algunas de las nuevas funcionalidades ofrecidas en el espacio de nombres de WebMatrix . Por defecto, la membresía simple está habilitada por algún motivo, por lo que tuvimos que deshabilitarla explícitamente, ya que no queríamos llegar al uso de SimpleMembershipProvider
.
Todo lo que teníamos que hacer era agregar esto a web.config:
<add key="enableSimpleMembership" value="false"/>
Tener habilitada la membresía simple hizo que el código de inicialización del proveedor se ejecutara antes que el manejador Application_Start. La estructura de nuestra aplicación requiere que App_Start sea lo primero que se ejecute. Personalmente, siempre esperaría esto, pero la membresía simple cambia este comportamiento. Tener cuidado.
Agregue esto en su web.config (en la sección appSettings):
<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false"/>
EDITAR:
Para los que preguntan por qué, es un problema conocido descrito en las notas de la versión de mvc 3. Más detalles here
Bueno, acabo de recibir este error, y resultó de haber copiado accidentalmente un .cshtml en la raíz de mi proyecto. Ni siquiera estaba incluido en el proyecto. Eliminado eso y el error desapareció. Esto fue con MVC3 en IIS7. Me imagino que algunas de las personas que tienen este problema están en el mismo barco.
Después de actualizar algunas de mis aplicaciones de ASP.NET MVC3 a MVC4, recibí este error. Fue el resultado de los ensamblados de WebMatrix (WebMatrix.WebData.dll y WebMatrix.Data.dll). Quité esas referencias y ensamblajes del directorio / bin y eso resolvió el problema.
Esto se debe a una cantidad de llamadas de Reflexión que se realizan demasiado temprano en una Aplicación. Simplemente sucede que las sugerencias de Web.Config en otras respuestas impidieron que se realizara una de esas llamadas a Reflection. En mi caso sin embargo:
Estoy usando Entity Framework y ejecuté la update-database
. Tengo:
Este método no puede invocarse durante la fase de inicialización previa al inicio de la aplicación.
Resultó que teníamos un código que usaba una biblioteca que fue modificada recientemente para obtener todo el código en todos los espacios de nombres / proyectos. Específicamente, llamó:
System.Web.Compilation.BuildManager.GetReferencedAssemblies()
Kaboom. Eso causó este oscuro error. Las migraciones de EF se ejecutan en una zona rara donde la aplicación está medio ejecutándose y la mitad no, lo que significa que el método anterior nunca puede invocarse con ningún código al que las migraciones recurran.