2012-01-04 19 views
8

Durante la noche una aplicación web (interna, afortunadamente) MVC ha dejado de funcionar para mí, sin que por lo que sé se haya cambiado nada. La aplicación en sí misma no ha sido modificada en los últimos dos días, y lo mismo ocurre con IIS.IIS 6.0 muestra repentinamente la lista de directorios en lugar de la aplicación MVC 3

El problema es que obtengo una lista de directorios de mi carpeta www en lugar de la acción predeterminada de las aplicaciones (/Home/Index).

Mi www-carpeta contiene el material estándar:

bin 
Content 
Scripts 
Views 
Global.asax 
Web.config 

que he intentado:

  • el establecimiento de un "específico Página" como acción de inicio, pero no resuelve el problema.
  • reiniciar la página web en IIS
  • habilitar/deshabilitar la "página de contenido predeterminado" en IIS. No ayuda, pero IIS retoma un Default.html si lo coloco en la carpeta www.

Ahora, esto ha sucedido una vez. En ese momento estaba de vacaciones y se resolvió reiniciando todo el Servicio de publicación World Wide Web. Si bien podría funcionar esta vez también, prefiero descubrir la raíz del problema antes de solucionarlo temporalmente para que vuelva a suceder más adelante. Entonces, aunque un reinicio del servicio de publicación WWW podría hacer que el sitio vuelva a funcionar, prefiero entender por qué sucedió antes de solucionarlo de esta manera.

Finalmente, tenga en cuenta que estoy ejecutando otras aplicaciones MVC en el mismo servidor IIS y nunca he tenido este problema con ellas.

+0

¿Cómo es posible obtener una lista de directorios para una url que físicamente no existe en el servidor ('/ Home/Index')? ¿Qué hace una lista de este directorio que estás viendo? ¿No estás obteniendo un error 404? –

+0

No 404 o mensaje de error en absoluto. Está enlistando el contenido de mi carpeta virtual actual, y no estoy intentando acceder a/Inicio/Índice, por lo que puedo decir. –

+0

¿ha configurado las URL sin extensión en IIS 6.0? –

Respuesta

2

Tuve un problema similar. La ruta raíz de IIS había sido modificada por un colega. La solución fue arreglar la "Ruta física" en la "Configuración avanzada" del Sitio web predeterminado.

2

No creo/Inicio/Índice es posible ejecutar om IIS 6.0 sin configuración. ASP.NET MVC realmente requiere "Modo Integrado", pero podría ejecutarse en modo clásico con la aplicación de configuración.

Ese artículo por el señor Haack, puedan ser de utilidad: http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

+0

Verificará esto, pero tenga en cuenta que la aplicación se estaba ejecutando sin problemas ayer, y que no se ha modificado desde entonces. –

18
  1. símbolo de sistema abierto
  2. C:\Windows\Microsoft.NET\Framework\<version> Ir a carpeta.
  3. Run aspnet_regiis -i

Eso es todo!

+4

Esto resolverá el problema, pero eso no es realmente por lo que vine aquí. Quiero entender * por qué * sucedió. –

+0

No recomendaría esta solución, si tiene otro sitio que necesita otra versión de .net framework, lo arruinará – Seichi

+0

@Afshin Mehrabani Trabajó para mí, me salvó la vida :-) muchas gracias :-) –

5

Un poco tarde ... Pero como estaba recibiendo el mismo resultado.

Mi grupo de aplicaciones tenía como objetivo la versión .Net incorrecta (debería ser la misma que la de la aplicación web Target Framework). Simplemente se ajustó dentro de la opción "Establecer valores predeterminados del conjunto de aplicaciones", se reinició y se solucionó.

espero que ayude a alguien.

0

Vi este problema cuando agregué una carpeta llamada "documentos" en la raíz y también tenía una controladora DOCUMENTOS & vista.Creo que fue confuso si quería la ruta \ documents que está en la carpeta CONTROLLER o en la carpeta \ documents debajo de la raíz. Una solución fue añadir un id a la ruta que le hace utilizar la versión del controlador de documentos

Url.Action("Index", "Documents", *New With {.id = 1}*)

También puede cambiar el nombre de la carpeta que acaba de agregar debajo de la raíz a DOCS.

Cuestiones relacionadas