Meine WebApi-Filtermethode OnActionExecuted
wird zweimal aufgerufen.
Mein Filter (ich mache es so einfach wie möglich):
Mein Setup:
%Vor% Im Debugger fange ich OnActionExecuted
zweimal mit der gleichen actionExecutedContext
. Warum?
UPD
%Vor% Ich habe den Verdacht, dass dieses seltsame Verhalten durch Überschreiben der AllowMultiple
-Eigenschaft des Filters und Zurückgeben von false oder durch das Anwenden des AttributeUsage
-Attributs mit AllowMultiple
auf false behoben werden kann (dies beeinflusst die Standardimplementierung von%). co_de% Eigenschaft des Filters.
Zumindest in unserem Projekt hat das geholfen (wir haben Filter über Autofac injiziert).
Dies kann auf eine Registrierung eines benutzerdefinierten Filteranbieters zurückzuführen sein. Wenn Sie dies tun, müssen Sie die Standard Registrierung aufheben. Andernfalls, wenn Sie die üblichen Filter in Ihrem benutzerdefinierten Filter erhalten, werden sie zweimal registriert und folglich zweimal ausgeführt.
Code sollte in etwa so aussehen:
%Vor%Wie bereits gesagt wurde, ist AllowMultiple auf false ein Hack, da .net clever genug ist, nur einmal einen Filter auszuführen, selbst wenn er mehrmals registriert wurde. Außerdem gibt es Szenarien, in denen dies erforderlich ist, um wahr zu sein.
Tags und Links asp.net-mvc asp.net-web-api action-filter