Global.asax no tiene noción de controladores y acciones, por lo que creo que no hay una API para recuperar nombres de controlador y acción. Sin embargo es posible darle una oportunidad para la resolución de solicitud de 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;
Para obtener el IP del usuario puede utilizar UserHostAddress
propiedad:
string userIP = HttpContext.Current.Request.UserHostAddress;
Para filtrar HTTP excepciones que no se va a manejar que pueda usar algo como:
HttpException httpException = exception as HttpException;
if (httpException != null)
{
switch (httpException.GetHttpCode())
{
case 404:
case 504:
return;
}
}
una última observación sobre el manejo de excepciones - no es una buena práctica para hacerlo a nivel global cuando hay una manera de realizar más loc aliado. Por ejemplo, en ASP.NET MVC clase base Controller
tiene un método:
protected virtual void OnException(ExceptionContext filterContext)
que, cuando se anula, le dará un control total sobre la excepción ocurrido. Puede tener toda la información disponible para usted en Global.asax más ASP.NET MVC características específicas como una referencia al controlador, contexto de vista, datos de ruta, etc.
'No necesito 404, 504 .... erors' ehh? Así es como funciona HTTP. ¿Y qué quiere decir con 'puedo filtrar excepciones'? – jgauffin
Esta publicación definitivamente te ayudará http://prideparrot.com/blog/archive/2012/5/exception_handling_in_asp_net_mvc – VJAI