es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Hace referencia a la función de reescritura de bucle infinito en el archivo global.asax de ASP.NET.

Aquí está mi Global.asax:

“`C#
public void GetRewrites()
{
if (rewrites == null)
rewrites = Rewrite.getRules(); //lee de la base de datos
}

protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Clear();
RouteTable.Routes.EnableFriendlyUrls();
RouteTable.Routes.MapPageRoute(“”, “home”, “~/Default.aspx”);
RouteTable.Routes.MapPageRoute(“”, “login”, “~/Login.aspx”);
…otros
}

protected void Application_BeginRequest(object sender, EventArgs e)
{
String fullOriginalPath = Request.Url.ToString();
//si el enlace contiene .aspx no es una reescritura
if(fullOriginalPath.Contains(“.aspx”))
{
return;
}

  GetRewrites();

  int index = 0;
  if (fullOriginalPath.Contains("www.mysite.com"))
     index = fullOriginalPath.IndexOf('/', fullOriginalPath.IndexOf("www.mysite.com")) + 1;
  else
     index = fullOriginalPath.IndexOf('/', fullOriginalPath.IndexOf("localhost")) + 1;

  string chiave = fullOriginalPath.Substring(index).ToLower();

  //verifica si existe en RouteTable
  //ignora los primeros 2 elementos
  for (int i = 2; i<routetable.routes.count; i++)="" {="" system.web.routing.route="" rx="RouteTable.Routes[i]" as="" system.web.routing.route;="" if="" (rx.url="=" chiave)="" return;="" }="" si="" no="" existe="" en="" las="" reglas="" de="" redireccionamiento,="" debe="" ir="" a="" la="" página="" de="" inicio="" if(rewrites.where(x="">x.Chiave == chiave).Count() == 0)
  {
     Response.Redirect("home");
     return;
  }

}
“`

Aquí está el problema:

Si voy a localhost:4210/home, todo está bien.

Si publico mi aplicación en el servidor e intento acceder al enlace www.mysite.com/home, obtengo el error “El sitio se redirige demasiadas veces”.

¿Alguien tiene alguna idea de la razón?</routetable.routes.count;>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una posible razón para este problema podría estar relacionada con las reglas de reescritura de URL en la aplicación. Es posible que las reglas no estén configuradas correctamente para manejar el nombre de dominio en la URL, lo que causa un bucle de redireccionamiento. Otra posibilidad es que pueda haber reglas o rutas conflictivas en la aplicación que estén causando el bucle de redireccionamiento. Se recomienda revisar las reglas de reescritura de URL y las rutas en la aplicación y asegurarse de que estén configuradas correctamente para manejar el nombre de dominio en la URL. Además, puede ser útil verificar los registros de la aplicación o los registros del servidor en busca de mensajes de error o información adicional que puedan proporcionar información sobre la causa del problema.

Comments are closed.