Je viens de mettre à jour mon site Web API paquets dans mon MVC 4 l'application, de sorte que je peux utiliser l'attribut de routage. Quand j'ajoute de la config.MapHttpAttributeRoutes()
j'obtiens un message d'erreur qui dit que "L'objet n'a pas encore été initialisé. S'assurer que HttpConfiguration.EnsureInitialized() est appelée au démarrage de l'application, le code après que tous les autres code d'initialisation." Si je supprime config.MapHttpAttributeRoutes()
et de la Route des attributs, tout fonctionne comme il le faisait avant. Comment puis-je résoudre ce problème?
Voici mon WebApiConfig classe:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// Uncomment the following line of code to enable query support for actions with an IQueryable or IQueryable<T> return type.
// To avoid processing unexpected or malicious queries, use the validation settings on QueryableAttribute to validate incoming queries.
// For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712.
//config.EnableQuerySupport();
}
}
Et les détails de l'erreur:
L'objet n'a pas encore été initialisé. S'assurer que HttpConfiguration.EnsureInitialized() est appelée au démarrage de l'application, le code après que tous les autres code d'initialisation.
Description: Une exception non gérée s'est produite pendant l'exécution de la demande web actuelle. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et où elle a son origine dans le code.
Détails De L'Exception: System.InvalidOperationException: L'objet n'a pas encore été initialisé. S'assurer que HttpConfiguration.EnsureInitialized() est appelée au démarrage de l'application, le code après que tous les autres code d'initialisation.
Source De L'Erreur:
Une exception non gérée s'est produite lors de l'exécution de la demande web actuelle. Informations concernant l'origine et l'emplacement de l'exception peut être identifié à l'aide de la trace de pile d'exception ci-dessous.
Trace De La Pile:
[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() +127
System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request) +99
System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext) +191
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