Ich habe ein grundlegendes webAPI-Projekt erstellt (leeres Webprojekt mit Überprüfung der webAPI) und die owin nuget-Pakete dem Projekt hinzugefügt.
Ich habe dann eine Logging-Klasse erstellt und sie über den Start verbunden
%Vor%Wenn ich das Projekt starte und die Standardseite geöffnet wird, sehe ich die Anfangs- / Ende-Anforderungen aufgerufen (zweimal, wie es passiert, nicht sicher, warum das ist).
Wenn ich jedoch versuche, eine /api
route (wie '/ api / ping /') aufzurufen, wird die Anfrage erfolgreich abgeschlossen, aber ich sehe die Begin / End-Anforderungsstatus nicht im Protokoll.
Was vermisse ich damit?
Owin führt die Middleware-Elemente in der Reihenfolge aus, in der sie registriert sind, und endet mit dem Aufruf des Controllers ( appBuilder.UseWebApi(config)
), der anscheinend nicht next.Invoke()
aufruft. Da der Code in der Frage die Logging Middleware-Klasse nach dem Aufruf UseWebApi
registriert hat, wird er nie für API-Anfragen aufgerufen.
Ändern des Codes zu:
%Vor%behebt das Problem.
Tags und Links c# owin asp.net-web-api2