Pregunta

Estoy haciendo algunos trabajos con Web.Routing, usándolo para tener urls amigables y buen descanso como interfaces a un sitio que está esencialmente dictada por un solo IHttpHandler. No hay formularios web, el controlador genera todo el html / JSON y lo escribe como parte del proceso de solicitud.

Esto funciona bien para cosas como / Sitios / Contabilidad por ejemplo, pero lo no puede conseguir que funcione de la raíz del sitio, es decir, '/'.

He intentado registrar una ruta con una cadena vacía, con 'Default.aspx' (que es el archivo aspx vacío guardo en mi carpeta raíz de juego agradable con Cassini y IIS). Me puse a RouteExistingFiles falsa explícitamente, pero haga lo que haga al golpear la raíz url todavía abre default.axpx, que no tiene código que es heredera, y contiene una etiqueta h1 sencillo demostrar que he conectado a él.

No quiero cambiar el archivo predeterminado para redirigir a una ruta deseada, sólo quiero el equivalente de una ruta 'por defecto' que se aplica cuando no se encuentran otras rutas, similar a la MVC.

A modo de referencia, la versión anterior del sitio no utilizar Web.Routing, pero tenía un manejador de referencia en el web.config que era perfectamente capaz de interceptar las peticiones de la raíz o default.aspx.

Especificaciones: ASP.NET 3.5sp1, C #, no hay formularios web, MVC o openrasta. viejos IHttpHandlers sin formato.

¿Fue útil?

Solución

Fijo mi propio problema: el problema es el servidor web integrado, Cassini o algo así. Parece que doesnt buen juego con el encaminamiento, y tendrá por defecto devuelva el archivo default.aspx o, si no lo tiene, muestran una lista de directorios.

El uso de IIS con un directorio virtual funciona bien, pero es molesto (frustra partícipes de código, ya que necesitan para crear nuevos directorios virtuales cuando se abren mi aplicación, y contamina mi propia instancia de IIS. Bah. Probablemente lo que haré para Sin embargo el momento, o crear una nueva aplicación de forma manual para que pueda utilizar el dominio de host único camino parecido a lo que existirá en vivo.

Una alternativa es utilizar la versión actualizada de Cassini, visto aquí , que funciona si el archivo default.aspx no está presente, pero no he trabajado la manera de integrar con visual Studio todavía. Cualquier ayuda se agradece, pero no es una gran prioridad dada tengo soluciones.

Otros consejos

Me doy cuenta de que este es un post muy viejo, pero me acabo de encontrar con el mismo problema usando VS2012, así que les dejo esto aquí por si acaso.

Me solucionó el problema mediante la instalación IIS expreso y establecer el proyecto para utilizar IIS Express en Visual Studio. Resuelto el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top