Global.asax non ha la nozione di controller e azioni, quindi credo che non ci sia un'API per il recupero dei nomi di controller e azioni. Tuttavia si potrebbe dare una prova per la risoluzione richiesta URL:
HttpContextBase currentContext = new HttpContextWrapper(HttpContext.Current);
UrlHelper urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
RouteData routeData = urlHelper.RouteCollection.GetRouteData(currentContext);
string action = routeData.Values["action"] as string;
string controller = routeData.Values["controller"] as string;
Per ottenere l'IP dell'utente è possibile utilizzare UserHostAddress
proprietà:
string userIP = HttpContext.Current.Request.UserHostAddress;
Per filtrare HTTP eccezioni che non si ha intenzione di gestire è possibile usa qualcosa come:
HttpException httpException = exception as HttpException;
if (httpException != null)
{
switch (httpException.GetHttpCode())
{
case 404:
case 504:
return;
}
}
Un'ultima osservazione sulla gestione delle eccezioni - non è una pratica migliore per farlo a livello globale quando v'è un modo per eseguire più loc alleato. Per esempio in ASP.NET MVC di base Controller
classe ha un metodo:
protected virtual void OnException(ExceptionContext filterContext)
che, se ignorato, vi darà il controllo completo sul verificata un'eccezione. Puoi avere tutte le informazioni disponibili per te in Global.asax plus ASP.NET MVC caratteristiche specifiche come riferimento a controller, contesto vista, dati percorso ecc.
'Non ho bisogno di 404, 504 .... erors' ehh? Ecco come funziona HTTP. E cosa intendi con 'posso filtrare le eccezioni'? – jgauffin
Questo post ti aiuterà sicuramente http://prideparrot.com/blog/archive/2012/5/exception_handling_in_asp_net_mvc – VJAI