Instalé Visual Studio 2013 y cuando ejecuto mi aplicación aparece el siguiente error.
No tengo idea de dónde debo inicializar este objeto.
¿Qué hacer?
Server Error in '/' Application.
The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[InvalidOperationException: The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.]
System.Web.Http.Routing.RouteCollectionRoute.get_SubRoutes() +101
System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request) +63
System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext) +107
System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) +233
System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +60
System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +82
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18408
Esto es para AlumCloud
c#
.net
asp.net-mvc-routing
Llenar la pila es lo que hago
fuente
fuente
GlobalConfiguration.Configure(Action<HttpConfiguration> configurationCallback)
que llamará después de la configuración Callback.Si lo hace al final de Application_Start, será demasiado tarde, como se ha llamado a WebApiConfig.Register.
La mejor manera de resolver esto es usar un nuevo método de inicialización reemplazando en Global.asax:
por
fuente
GlobalConfiguration.Configure(config => new WebApiConfig().Register(config));
En realidad, recibí este error cuando estaba usando el enrutamiento de atributos dentro de mi WebApi.
yo tenía
en vez de
para mi ruta y obtuve este error. Simplemente me había perdido el corchete de cierre. Una vez que lo agregué nuevamente, este error no volvió a ocurrir.
fuente
Esto es antiguo, pero es el primer resultado en Google al buscar este error. Después de un poco de excavación pude averiguar qué estaba pasando.
Significado: si viene de un proyecto Mvc existente, todo lo que tiene que hacer es:
O
Cavar más profundo
HttpConfiguration.Configuration tiene una propiedad "Initializer" definida así:
HttpConfiguration.EnsureInitialized () ejecuta esta acción y establece _initialized en true
HttpConfiguration.MapAttributeRoutes llama al método interno AttributeRoutingMapper.MapAttributeRoutes que establece HttpConfiguration.Initializer
GlobalConfiguration.Configure ejecuta GuaranteeInitialized inmediatamente después de invocar su acción:
No olvide que si se encuentra con un muro, la fuente de asp.net está disponible en http://aspnetwebstack.codeplex.com/SourceControl/latest
fuente
He tenido un problema relacionado. A veces llamando
GlobalConfiguration.Configure
varias veces desencadena este error. Como solución alternativa, he puesto toda la lógica de inicialización de configuración en un solo lugar.fuente
Para mí, el problema era que estaba tratando de usar parámetros con nombre para los campos de cadena de consulta en mis rutas:
Los campos de cadena de consulta se asignan automáticamente a los parámetros y en realidad no forman parte de la definición de ruta. Esto funciona:
fuente
Aunque la respuesta anterior funciona si no está configurado en caso, en mi caso ya está configurado. Lo que era diferente era que, para una de las API que había escrito, había prefijado la ruta con un /. Ejemplo
Cambiando esto a
me lo arregló
fuente
HttpPrefix
decoradora y luego para mi punto final individuo que tenía el decorador:[Route("/")]
. Simplemente pasando una cadena vacía en la ruta se solucionó el problema.SI ESTE ERROR PARECE HABER SALIDO "DE NINGUNA PARTE" , es decir, su aplicación funcionó perfectamente bien durante un tiempo, pregúntese: ¿Agregué una acción a un controlador o cambié alguna ruta antes de ver este error?
Si la respuesta es sí (y probablemente lo sea), es probable que haya cometido un error en el proceso. El formateo incorrecto, copiar / pegar una acción y olvidarse de asegurarse de que los nombres de punto final sean únicos, etc., todo lo terminará aquí. La sugerencia que hace este error sobre cómo resolverlo puede enviarle a ladrar al árbol equivocado.
fuente
Llamada
antes de
completa su ejecución
fuente
Recibí este error cuando la versión de Newtonsoft.Json era diferente en mi proyecto principal en comparación con el proyecto auxiliar
fuente
Normalmente, se obtiene esta excepción cuando las plantillas de ruta en "Enrutamiento de atributos" no son adecuadas.
Por ejemplo, obtuve esto cuando escribí el siguiente código:
En la sintaxis de restricciones de ruta {parámetro: restricción}, la restricción por defecto es de tipo cadena . No es necesario mencionarlo explícitamente.
fuente
Empecé a recibir este error un día. Después de alterar nuestra aplicación para llamar
EnsureInitialized()
, pude ver la causa raíz.Tenía un atributo personalizado, un filtro, en una acción. Esa clase de atributo había tenido un cambio importante en el paquete NuGet en el que vive.
Aunque había actualizado el código y todo estaba compilado, el trabajador local de IIS estaba cargando una DLL antigua y no encontraba un miembro de la clase durante la inicialización, leía los atributos de las acciones, etc.
Por alguna razón (posiblemente debido a un pedido / cuando nuestro registro se inicializa), este error no fue detectable, posiblemente dejando el WebAPI en un estado extraño, hasta que agregué
EnsureInitialized()
que captó la excepción y salió a la superficie.Realizar un correcto
bin
yobj
limpio a través de un script útil lo resolvió.fuente
En mi caso, creé el servicio web en el proyecto A y lo inicié desde el Proyecto B y obtuve exactamente este error. El problema era que algunos archivos .dll requeridos por A faltaban en la carpeta de salida de compilación de B. Asegúrese de que estos archivos .dll estén disponibles lo arreglaron.
fuente
En mi caso, utilicé una Entidad como parámetro de mi acción que falta su 'Esquema'.
Atributo incorrecto:
Correcto:
fuente