2012-03-02 14 views
8

Tengo una aplicación web asp.net ubicada en el servidor Quiero evitar todos los errores personalizados y del servidor de mi sitio.Cómo evitar el error personalizado/del servidor en el sitio web?

Para ello, he utilizado

<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPage/TryAgainLater.aspx"> <error redirect="~/ErrorPage/PageNotFound.aspx" statusCode="404"/> </customErrors> 

Usando el código anterior se podrá evitar algún problema. es decir.

Supongamos "http://Exaple.com/Careers.aspx" Página disponible en mi sitio, entonces

Caso 1. http://Exaple.com/Careersss.aspx "Fue correcto funcionamiento a lo anterior regla".

Caso 2. http://Exaple.com/[email protected]##Careersss.aspx "No funciona" Nota: Aquí añado carácter especial

Caso 3: http://Exaple.com/Careersss.aspxxxx "No funciona" Nota: después de agregar el carácter ".aspx"

caso 4: http://Exaple.com/Careersss.aspx/[email protected][email protected][email protected] ! "No funciona el diseño rompiendo aquí". Nota: Agregue '/' con carácter especial.

por favor ayúdeme cuando el usuario obtenga el caso 2,3,4 y luego se redirecciona automáticamente a la página de error.

Gracias de antemano.

+1

Entonces ... ¿cuál es la pregunta? ¿Y cómo se relaciona con javascript? – kirilloid

+0

@kirilloid Imagino que tiene que ver con su segundo caso en el que usa el símbolo hash, pero no está del todo claro por la pregunta. – treeface

+0

Aquí quiero evitar la URL innecesaria si alguien de fuera intenta distraer nuestro sitio, entonces solo quiero que vaya directamente a la página de error. –

Respuesta

1

Si no desea cambiar la configuración de IIS, puede instalar su propio controlador para 404 errores en Global.asax. Sólo tiene que añadir este método en nuestro Global.asax.cs archivo de código subyacente:

protected void Application_EndRequest(object sender, EventArgs e) 
{ 
    HttpResponse response = HttpContext.Current.Response; 
    if (response.StatusCode == 404 && response.SubStatusCode == 0) 
    { 
     response.Redirect("/test/TryAgainLater.aspx?error=NotFound"); 
     response.End(); 
    } 
} 

Si no se soluciona el problema y todavía se están recibiendo página de error 404, agregue esta configuración para su archivo web.config:

<configuration> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
</configuration> 
Cuestiones relacionadas