asp.net iis-7 infinite-loop http-status-code-302

asp.net - 302 bucle infinito



iis-7 infinite-loop (3)

Encontrado el problema Encontré esta lógica en la página maestra:

Dim strPage As String = Request.Url.AbsolutePath.Replace("/", "") ''Check that user is logged in If Not strPage = "Login.aspx" And Not strPage = "Register.aspx" Then If Session("intUserId") Is Nothing Then Response.Redirect("~/Login.aspx", True) End If End If

Evidentemente, strPage no es igual a Login.aspx al navegar a Login.aspx en el servidor.

Debería haberlo pensado cuando lo estaba investigando. Gracias Ross por tu comentario, ¡me ayudó a encontrar esto!

Tengo una aplicación web que está atrapada en un ciclo infinito, y no tengo idea de dónde mirar a continuación. Este es un sitio de intranet, por lo que no hay ningún enlace que pueda compartir, pero he enumerado todos los detalles que se me ocurren a continuación. Agradecería cualquier idea o sugerencia. Cualquiera lo ha hecho

Los detalles:

  • IIS 7
  • .Net 4.0
  • Windows 2008
  • El documento predeterminado es Login.aspx
  • Sin redireccionamiento de HTTP configurado en la aplicación o Login.aspx en IIS
  • Fiddler muestra Login.aspx usando el código de estado de 302 y redirigiendo a Login.aspx

Si abro mi sitio, apunta a Login.aspx y se atasca en un bucle 302. Si abro el sitio pero apunto a register.aspx, Fiddler muestra register.aspx yendo a Login.aspx que por supuesto redirige a Login.aspx.

Qué he hecho:

  • Ejecute la aplicación web de Visual Studio: todo funciona bien
  • Compruebe web.config para los comandos de redireccionamiento: no hay ninguno
  • Verifique IIS para los comandos de redirección - no hay ninguno
  • Mire Fiddler para otra página en el ciclo - no hay ninguna, solo Login.aspx para Login.aspx
  • Compruebe Login.aspx para los comandos de redirección - no hay ninguno
  • Compruebe el código de Login.aspx detrás para los comandos de redirección - no hay ninguno
  • Ejecuta la aplicación en mi caja usando web.config desde el servidor: todo funciona
  • Compruebe Login.aspx para los comandos de redirección - no hay ninguno
  • Caché borrado: el problema persiste
  • Republicado - el problema aún persiste
  • Caché republicado y borrado: el problema persiste
  • Documento predeterminado deshabilitado en IIS

Lo compartiré por si acaso es una respuesta, ya que parece un problema que tuvimos.

  1. Sitio MVC de ASP.net con el atributo [RequiresHttps] en nuestra acción de inicio de sesión.

  2. Detrás de un equilibrador de carga que estaba haciendo aceleración de SSL (lo que hace que la solicitud que realmente golpea el código del lado del servidor ya esté decodificada y efectivamente en http).

  3. El código del servidor piensa que esto es un problema y redirige a sí mismo usando https.

  4. Enjuague y repita.


Me encontré con un error similar. Pero el mío fue un error tipográfico con dos Response.Redirect espalda con espalda.

If (conditon1){ Response.Redirect("Page1.aspx"); } If (conditon2){ Response.Redirect("Page2.aspx"); }

Y la solución fue simplemente poner el otro si está en el bloque else .