Solicitudes para mis archivos de imagen css, js, se están sirviendo a través de la interconexión de ASP.NET. Pensé que IIS por defecto lo evitó, pero veo las solicitudes en mi punto de corte Application_AuthenticateRequest
y no hay necesidad de autenticar realmente esas solicitudes. He visto enfoques conflictivos para cambiar este comportamiento. ¿Cuál es la mejor manera de hacer esto?Impedir que IIS sirva archivos estáticos a través de la canalización de ASP.NET
Respuesta
estoy tomando una conjetura aquí y sospecha que tiene el siguiente ajuste configurado en el archivo de web.config
:
<modules runAllManagedModulesForAllRequests="true">
Esto significa que todas las solicitudes, incluyendo las de contenido estático está golpeando la tubería.
Cambiar este valor para:
<modules runAllManagedModulesForAllRequests="false">
Esto es suponiendo que su aplicación se ejecuta en ASP.NET 4.0 y MVC3.
Para que esto funcione, debe instalar KB980368 (requiere un reinicio) o Windows 2008R2 SP1 (que incluye este hotfix). La razón de esto se explica en este excelente artículo:
How ASP.NET MVC Routing Works and its Impact on the Performance of Static Requests
En algún lugar de su configuración de IIS o de un web.config, tiene una asignación de controlador configurada para asignar estos archivos a su aplicación ASP.Net.
Intente eliminar su web.config y vea si todavía puede navegar a estos tipos de archivos desde IIS sin ASP.Net. Si eso falla, sabrá que es su web.config; de lo contrario, deberá verificar la configuración de IIS.
Paso 2 - Ponga la web.configs nuevamente, luego elimine y vuelva a crear el sitio - ¿el mismo problema? Es una configuración en la raíz de IIS, lo que significa que se aplica a todos los sitios: compruebe las asignaciones de controladores aquí.
acabé añadiendo esto a mi web.config. Sé que todos mis archivos estáticos existirán en estas carpetas, por lo que funciona bien para mis necesidades.
<location path="scripts">
<system.web>
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="styles">
<system.web>
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="images">
<system.web>
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
¿Se permiten múltiples valores en el atributo 'ruta'? Según el siguiente enlace, no son: http: // stackoverflow.com/questions/4608764/specify-more-one-directory-in-web-configs-location-path-element – UserControl
Eso es una lástima. –
esto solo evita la autenticación, pero las solicitudes de archivos estáticos todavía están llegando a los módulos administrados. @Kev tiene la respuesta correcta. – vtortola
En VS2012/MVC3 con Visual Studio Development Server activado, el RAMMFAR = falso no tiene ningún efecto. Cada solicitud de archivos estáticos todavía golpea al controlador de eventos Application_BeginRequest.
Cambié a IIS Express y vi la funcionalidad deseada.
- 1. ¿Cómo funciona la canalización IIS 7/ASP.Net?
- 2. Hacer que Django sirva archivos descargables
- 3. Configuración de IIS 7 para manejar archivos estáticos a través de un proveedor de ruta virtual
- 4. Descarga de archivos a través de WCF más lento que a través de IIS
- 5. IIS entiende archivos estáticos en MVC como contenido dinámico
- 6. Impedir que IIS elimine una tarea antes de que finalice
- 7. ASP.NET VirtualPathProvider con archivos estáticos Problema
- 8. ASP.NET MVC en IIS cae en el controlador de archivos estáticos
- 9. Config IIS para servir archivos estáticos/CDN?
- 10. django: sirviendo archivos estáticos a través de nginx
- 11. Problema de compresión de archivos estáticos IIS 7
- 12. ¿Cómo se sirven los archivos estáticos a través de Rack?
- 13. Obtenga Asp.net/iis para establecer el control de caché: max-age para archivos estáticos
- 14. Impedir la carga de archivos de gran tamaño en ASP.NET 4.0
- 15. Permita que Apache sirva múltiples directorios a través del único <Location>
- 16. ¿Impedir la ejecución de archivos php cargados?
- 17. Impedir que IntelliJ agregue archivos iml
- 18. Resolviendo "esta operación requiere el modo de canalización de integración IIS" en ASP.net MVC2
- 19. IIS 7.5 MVC requiere autenticación para obtener archivos estáticos
- 20. Cómo utilizar símbolo de canalización a través ejecutivo en Java
- 21. Impedir que Excel salga de
- 22. ¿Tiene acceso a la propiedad estática a través de métodos estáticos y no estáticos?
- 23. Incendios de BeginRequest para archivos estáticos en la aplicación ASP.NET MVC
- 24. inteligente HTTP a través de IIS
- 25. Interactuando con IIS a través de C#
- 26. Forzar IIS Express al modo de canalización clásica
- 27. ¿Cómo hacer que todos los archivos estáticos como archivos css/images/js no sean procesados por asp.net mvc?
- 28. Sirviendo archivos estáticos con anillo/compojure - de una guerra
- 29. Enrutamiento de archivos estáticos en ASP.NET MVC 3 como robots.txt
- 30. Rails 3.1, excluir archivos JS de la canalización de activos
esto funciona, pero REALMENTE no quiero cambiar esa configuración, ya que afecta a otras cosas. esperando una alternativa – kenwarner
@qntmfred - oh, hola otra vez :). ¿Alguna posibilidad de que pueda actualizar su pregunta y explicar lo que quiere decir con * "ya que afecta a otras cosas" *? – Kev
seguro, pero tengo que recordar lo que era primero>. < – kenwarner