Pergunta

Estou usando o excelente módulo de reescrita IIS7 (V2) e quero criar um reescrita personalizado que reescreva de maneira diferente, dependendo de se o arquivo físico existe.

Eu criei com sucesso um provedor, como neste tutorial:http://learn.iis.net/page.aspx/804/developing-a-custom-rewrite-provider-for-url-rewrite-module/

No entanto, realmente precisa ser capaz de mapear o URL para um caminho físico - eu normalmente faria isso via httpcontext.current.server.mappath () ou HostingEnvironment.mappath (), mas parece que o httpcontext não foi inicializado (em em em Menos dentro do domínio do aplicativo atual - como o módulo de reescrita é o código nativo, estou tendo dificuldades para descobrir onde posso obter essas informações).

Eu realmente não quero ter que recorrer à criação do meu próprio módulo de reescrita para contornar esse problema - alguém tem alguma pista para mim?

Obrigado! Marca.

Foi útil?

Solução

Você não poderá alcançá -lo usando essas APIs, pois o código é executado em um aplicativo diferente do que o ASP.NET está usando.

A única maneira de pensar que esse trabalho é passar a variável de servidor certa que inclui o caminho físico para sua extensão e fazer um path.combine () você mesmo.

Então, supondo que você tenha uma extensão chamada YourProvider, que você está chamando de alguma forma assim:{Yourprovder: {url}}

Você pode fazer:{YourProvder: {Appl_physical_path} | {url}}

Agora você pode obter o caminho físico e o URL separado por um tubo | , certifique -se de passar no caminho físico primeiro, pois o URL está no controle de usuários externos, você não deseja que eles o indicam a obter um caminho físico diferente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top