Sto utilizzando Elmah per la registrazione delle eccezioni sulla mia applicazione MVC utilizzando il pacchetto NuGet Alex Beletsky's elmah-mvc.Impedire l'applicazione di un filtro globale ASP.NET MVC all'azione Elmah
L'applicazione registra alcuni filtri globali, applicati a ciascuna azione denominata.
C'è un modo per impedire che alcuni di questi filtri vengano applicati quando si chiama la pagina di registro degli errori Elmah.Mvc.ElmahController
(foo.com/elmah
)?
Un test come di seguito funziona, ovviamente, ma sto cercando un modo più elegante che non implichi la modifica del filtro (né il codice sorgente di Elmah/Elmah MVC). È possibile?
public class FooAttribute : FilterAttribute, IActionFilter
{
// ...
public void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.Controller is ElmahController)
{
return;
}
// do stuff
}
}
So che attribuisce can't be added or removed at runtime.
ho pensato di avvolgere il
ElmahController
in uno nuovo in cui ho potuto aggiungere un filtro di esclusione, ma non sono sicuro di come (se possibile) per cambiare ilweb.config
fare riferimento a queste involucro al posto del controller originale.
Controlla questo - http: // s tackoverflow.com/questions/9953760/how-to-disable-a-global-filter-in-asp-net-mvc-selectively – malkam
@malkam Conosco questo. Il problema è che implica la decorazione dell'azione con un attributo, cioè la modifica del codice sorgente Elmah, che non voglio fare, per ovvi motivi. –
questa soluzione non mi sembra così terribile. Probabilmente lo farei in positivo però: 'if (controller è ElmahController) {// return senza azioni speciali ' – DLeh