Tengo problemas con un controlador de errores personalizado que construí. Debería ser un HttpModule
, pero cuando lo agrego a la etiqueta web.config
de system.webServer/modules
, no se inicia.HttpModule personalizado para IIS 7 para
Ésta es mi web.config
sección:
<system.webServer>
<modules>
<add name="AspExceptionHandler"
type="Company.Exceptions.AspExceptionHandler, Company.Exceptions"
preCondition="managedHandler" />
</modules>
</system.webServer>
Este es el código en mi HttpModule
:
using System;
using System.Web;
using Company.Settings;
using System.Configuration;
namespace Company.Exceptions
{
public class AspExceptionHandler : IHttpModule
{
public void Dispose() { }
public void Init(HttpApplication application)
{
application.Error += new EventHandler(ErrorHandler);
}
private void ErrorHandler(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext currentContext = application.Context;
// Gather information5
Exception currentException = application.Server.GetLastError();
String errorPage = "http://www.mycompaniesmainsite.com/error.html";
HttpException httpException = currentException as HttpException;
if (httpException == null || httpException.GetHttpCode() != 404)
{
currentContext.Server.Transfer(errorPage, true);
}
else
{
application.Response.Status = "404 Not Found";
application.Response.StatusCode = 404;
application.Response.StatusDescription = "Not Found";
currentContext.Server.Transfer(errorPage, true);
}
}
}
}
Podría alguien por favor me explique lo que estoy haciendo mal, y cómo IIS Managed 7 Integrado ¿El modo de tubería funciona? Debido a que la mayoría de las respuestas que encontré se refieren a la configuración de HttpModules
para IIS 6.
Gracias por la respuesta rápida, que ha configurado el grupo de aplicaciones a modo de canalización administrada. Lo probé usando IIS express en mi máquina local, y cuando eso no funcionó, publiqué el sitio en un servidor con IIS 7. Allí pude ver que el módulo estaba cargado, pero nunca se dispara. Así que estoy gessing es algo más que estoy haciendo mal ... –
Un error de sintaxis en mi web.config y algo de limpieza/solución de compilación y publica después, parece que funciona ... –
@jonas - nice one :) – Kev