2011-02-05 12 views
6

Me he unido a un equipo que desarrolla una aplicación ASP.NET MVC versión 1. Ejecuto esta aplicación en mi máquina local utilizando IIS versión 7.5. Mi sistema operativo es Windows Server 2008 R2 Enterprise Edition. Uso Visual Studio 2008 SP1 para el desarrollo.Problema de enrutamiento con nombre de controlador particular utilizando ASP.NET MVC 1 en IIS 7

Uno de los controladores en esta aplicación se llama ReportsController. Las entradas de la tabla de rutas para este controlador usan 'Informes' como parte del nombre del controlador. El problema que tengo es que, usando IIS 7.5 en mi máquina local, simplemente no puedo acceder a ninguno de los métodos de acción de Informes. Si intento acceder, digamos, '/ Informes/Indice' desde Chrome o Firefox, recibo una respuesta 401 no autorizada (como se ve usando Fiddler) y el navegador muestra su diálogo de ingreso de usuario/contraseña.

Tenga en cuenta lo siguiente:

  • Todas las demás páginas que no informe en la aplicación funcione correctamente.
  • Si agrego un punto de interrupción a Application_BeginRequest, no se golpea al solicitar una página Informes.
  • Si cambio las entradas de enrutamiento de Informes en el código de registro de la tabla de enrutamiento para que tenga que acceder a rutas como '/ Informes/Índice' (tenga en cuenta las 'extra' adicionales), estas páginas Informes funcionan correctamente.
  • He intentado eliminar y luego volver a crear mi aplicación web en IIS.
  • Las páginas de Informes funcionan bien si ejecuto la aplicación usando el servidor de desarrollo Visual Studio 2008 (Cassini).
  • No hay un directorio llamado Informes en el directorio de la aplicación.
  • Las páginas Informes funcionan correctamente en nuestro entorno UAT, también en IIS 7.5.
  • He revisado mi configuración de IIS varias veces, incluso comparándolas con las de UAT, y no puedo ver un problema.

Si bien puedo utilizar Cassini para acceder a las páginas Informes, realmente me gustaría entender qué está causando este problema.

+0

¿Ha comparado los archivos web.config? Cosas simples como módulos http faltantes o en el orden incorrecto pueden causar cosas como esta. Puede haber un archivo web.config en su carpeta de vistas, puede valer la pena revisarlo ya que según un artículo que encontré podría deberse a rutas seguras. http://haacked.com/archive/2008/06/25/aspnetmvc-block-view-access.aspx – Hawxby

+0

busca en todos tus archivos de solución una palabra "informes" ...tal vez puedas encontrar algún código que haga algo especial para estas rutas o este controlador (tal vez Autorizar el atributo en alguna parte, tal vez en algún controlador base o algo similar). También la configuración de autenticación está configurada en web.config como ya sugirió Hawxby. – mare

+0

Sin embargo, dado que parece que solo está relacionado con un Servidor de Windows en particular y su IIS, podría ser algo en la configuración de IIS. Es posible que tenga otro sitio o directorio virtual que funcione en/Informes y que uno tenga configurados ajustes especiales de autenticación/autorización. Uno que puedo pensar es MS SQL Server Reports Service ... – mare

Respuesta

11

Si tiene Reporting Services instalado en su máquina. intenta crear un nuevo sitio web y usarlo. Si tiene SSRS instalado en su máquina, usa/informes para informes de hosting.

+3

Muchas gracias @Cengiz, y @mare y @Sean - Reporting Services fue el problema. Lo solucioné accediendo al Administrador de configuración de Reporting Services y cambiando el nombre del encabezado del host en la URL del Administrador de informes (que es la ruta al directorio de Informes molestos). – stevejay

+0

+100 - fue una gran ayuda. Seguí el procedimiento aquí y cambié el puerto a 801 - http://bretstateham.com/fixing-sql-server-reporting-services-ssrs-2008-url-reservations-on-windows-7/ –

1

He tenido problemas al usar el nombre del directorio 'Informes' en la raíz de un sitio web .net 2.0 en IIS 7.5. Genera un error 503, que indica que hay un error en el nivel del sistema antes de que IIS intente publicar la página. No estoy seguro de si los servicios de informes están instalados en mi servidor. Solo cambié el nombre del directorio, todos los enlaces y todo funcionó.

0

Tengo exactamente el mismo problema en mi aplicación MVC con servicios de informes instalados en el mismo servidor donde se implementó el código. Cambié el URL de Reporting Manager en "SQL Server Reporting Services Configuration" que era hostName/Reports y se le asignó un nuevo nombre, es decir, SSRSReports, por lo que el directorio virtual ahora es hostName/SSRSReports.

Ahora mi aplicación y los informes de SSRS están funcionando como se esperaba.

Cuestiones relacionadas