none
no ejecuta el global.asax RRS feed

  • Pregunta

  • Hola:

    Tengo un global.asax en la carpeta raíz de mis páginas

    <script runat="server">
            
        Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
            Dim hex As Web.HttpException = Server.GetLastError
            If hex.GetHttpCode = 404 Then
                Server.Transfer("errores.aspx?error=paginanoencontrada&idioma=" & Request.QueryString("idioma"))
            Else
                Server.Transfer("errores.aspx?error=errorgenerico&idioma=" & Request.QueryString("idioma") & "&mensaje=" & hex.Message & "&fuente=" & hex.Source)
            End If
        End Sub
    
    </script>

    Pero nunca se ejecuta. ¿qué puede ser?

    Gracias de antemano

    martes, 17 de marzo de 2015 18:29

Respuestas

  • Hola volar.2014

    Pregunta 1: ¿Como tienes configurado la seccion customErrors en el web.config?
    Porque para disparar el evento Global.asax  Application_Error debe estar en Off 

    <configuration>
      <appSettings/>
      <connectionStrings/>
      <system.web>
        <compilation debug="true" />
    
        <!-- Turn on Custom Errors -->
        <customErrors 
          mode="Off"
          defaultRedirect="" >
        </customErrors>
    
      </system.web>
    </configuration>

    textual MSDN:

    "... debe establecer customErrors en Off o bien quitar la configuración defaultRedirect...."

    Pruebalo y nos comentas.

    RECOMENDACION 1: Cuidado con colocar directamente el Request.QueryString("idioma") sin curarlo previamente o validarlo para URL.  POrque veo que concatenas directamente en el Server.Transfer

    Pregunta 2: ¿Estas en MVC?
    Porque alli tendrias que agregar el filtro de HandleErrorAttribute que ya se encuentra en MVC4 en el metodo RegisterGlobalFilters donde podras ver

    filters.Add(new HandleErrorAttribute());


    Enlaces que te pueden ayudar

    Espero que te sirva de ayuda o guia


    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja

    martes, 17 de marzo de 2015 19:15

Todas las respuestas

  • hola

    esto te sucede cuando ejecutas desde el VS ? digo si defines un breakpoint en el evento del asax no se detiene

    que pasa si defines el Session_Start ese evento se ejecuta? digo para descartar que quizas el Application_Error no ingrese pero el asax si funcione

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 17 de marzo de 2015 18:39
  • Hola volar.2014

    Pregunta 1: ¿Como tienes configurado la seccion customErrors en el web.config?
    Porque para disparar el evento Global.asax  Application_Error debe estar en Off 

    <configuration>
      <appSettings/>
      <connectionStrings/>
      <system.web>
        <compilation debug="true" />
    
        <!-- Turn on Custom Errors -->
        <customErrors 
          mode="Off"
          defaultRedirect="" >
        </customErrors>
    
      </system.web>
    </configuration>

    textual MSDN:

    "... debe establecer customErrors en Off o bien quitar la configuración defaultRedirect...."

    Pruebalo y nos comentas.

    RECOMENDACION 1: Cuidado con colocar directamente el Request.QueryString("idioma") sin curarlo previamente o validarlo para URL.  POrque veo que concatenas directamente en el Server.Transfer

    Pregunta 2: ¿Estas en MVC?
    Porque alli tendrias que agregar el filtro de HandleErrorAttribute que ya se encuentra en MVC4 en el metodo RegisterGlobalFilters donde podras ver

    filters.Add(new HandleErrorAttribute());


    Enlaces que te pueden ayudar

    Espero que te sirva de ayuda o guia


    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja

    martes, 17 de marzo de 2015 19:15
  • Hola:

    Gracias

    Ejecuto con el servidor del VS 2102 express, Leandro

    Probé con customerrors, puse como tu ejempo, José

    Me sigue sin ejecutar el global.asax.

    Me las apaño añadiendo un page_error a todas las páginas.

    Gracias de nuevo. Saludos

    martes, 17 de marzo de 2015 21:44