Pregunta

Estoy utilizando el módulo de reescritura de IIS7 lugar excelente (V2), y quiero crear un RewriteProvider personalizado que vuelve a escribir de manera diferente depeneding de si existe el archivo físico.

He creado con éxito un proveedor, como en este tutorial: http: / /learn.iis.net/page.aspx/804/developing-a-custom-rewrite-provider-for-url-rewrite-module/

Sin embargo, realmente tengo que ser capaz de trazar la ruta de un camino físico - normalmente me gustaría hacer esto a través de HttpContext.Current.Server.MapPath () o HostingEnvironment.MapPath (), pero parece que la HttpContext no ha sido inicializado (al menos dentro de la corriente de aplicaciones de dominio - ya que el módulo de reescritura es código nativo, estoy teniendo dificultad para hacer ejercicio en el que puedo obtener esta información).

realmente no quiere tener que recurrir a la creación de mi propio módulo de reescritura de solucionar este problema - Alguien tiene alguna pista para mí

?

Gracias! Marcos.

¿Fue útil?

Solución

Usted no será capaz de llegar a ella utilizando las API ya que las carreras de código en un dominio de aplicación diferente a la que está utilizando ASP.NET.

La única manera que puedo pensar para hacer este trabajo es pasar la variable de servidor correcto que incluye la ruta física a su extensión y hacer un Path.Combine () usted mismo.

Así que suponiendo que tiene una extensión llamada YourProvider que está llamando de alguna manera como esto: {YourProvder: {URL}}

Se puede hacer: {YourProvder: {APPL_PHYSICAL_PATH} | {URL}}

Ahora puede obtener la ruta física y la URL separados por una tubería | , Asegúrese de pasar la ruta física por primera vez desde la URL está en el control de los usuarios externos que no desea que le engañan para conseguir una ruta física diferente.

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