He usado el módulo UrlRewriting.Net desde hace un par de años sin ningún problema en Windows XP y Windows 2003. Hace poco actualicé mi PC hogareña a Windows 7 y comencé a desarrollar un nuevo sitio web.UrlRewriting.Net Module + IIS7 Igual a Page.User == null?
El plan era utilizar extensiones .html y volver a escribirlas en sus contrapartes .aspx utilizando el módulo UrlRewriting.Net. Todo funciona sin problemas en VWD 2008, pero cuando intento ejecutarlo a través de IIS7, es una historia diferente.
Cuando intento acceder a una página mediante la revisión .html, ya no puedo acceder a Page.User; sigue volviendo nulo. Si toco la página con su extensión .aspx, la página. El usuario está correctamente poblado. También debo mencionar que tengo un controlador LoginView en mi página maestra y que sufre los mismos síntomas: al acceder a través de la extensión .html, muestra la plantilla Anonyous; Al usar la extensión .aspx, muestra correctamente LoggedInTemplate. Supongo que los dos están relacionados.
[Nota: También he intentado URL sin extensión y exhiben el mismo problema]
La única forma que he conseguido que funcione es cambiar el grupo de aplicaciones a la versión clásica, que luego me obliga a añadir un controlador ddl de ASP.Net para la extensión .html [de lo contrario, es manejado por el StaticFileHandler y aparece como un error 404]. Sin embargo, me gustaría que mi aplicación web se ejecute correctamente para las personas sin tener que jugar con IIS.
Así que me quedo con varias preguntas:
- ¿alguien tiene idea de por qué Page.User siempre es igual a cero para .html => .aspx reescrita páginas?
- ¿Por qué funciona en VWD 2008, pero no en IIS7?
- ¿Qué ha cambiado de IIS6 => IIS7 que podría haber causado esto?
- ¿Alguna otra idea sobre soluciones temporales?
[Nota: Acabo de intentar una .aspx => .aspx reescribir y no presentó el problema. No es realmente lo que quiero, pero pensé que debería mencionarlo.]
Sí, el modo integrado dentro de IIS es la principal diferencia entre IIS6 y 7. Es posible que desee consultar Mover una aplicación ASP.NET de IIS6 a IIS7 (http://msdn.microsoft.com/en-us/library /bb515251.aspx). Como has descubierto, VWD 2008 ejecuta todo a través de .NET, por lo que se está ejecutando efectivamente en modo integrado con runAllManagedModulesForAllRequests establecido en verdadero. – krohrbaugh
Gracias Sam. Usted es perfecto. Resuelve el problema. Yo votaría su respuesta pero no tengo suficientes reputaciones :( – Heinnge