Como configurar o IIS 7.5 para permitir caracteres especiais no Url para o ASP.NET 3.5?

3

Estou tentando configurar o meu IIS 7.5 para permitir caracteres especiais na URL do ASP.NET. Isso é importante para oferecer suporte a URLs legados amplamente difundidos em um novo sistema.

Exemplo de URL: link Isso seria codificado na URL e solicitado como link

Isso simplesmente funciona, ao criar uma nova web no IIS 7.5, colocando um arquivo com o sinal de porcentagem no nome do arquivo na raiz da web e apontando o navegador para ele.

Isso não funciona, no entanto, quando o site é um aplicativo ASP.NET. O ASP.NET sempre retorna um erro 400.0 - Bad Request no módulo WindowsAuthentication do manipulador StaticFile , ao apontar para esse URL. No entanto, ele exibe o URL solicitado corretamente e também resolve corretamente o arquivo físico correto (as informações do campo 'Caminho físico' da página de erro do servidor apontam para o arquivo fisicamente disponível).

Há dicas sobre como ativar isso, então segui as instruções nesses sites passo a passo:

O segundo realmente resume as informações do primeiro post e adiciona mais algumas informações sobre os sistemas x64 (estamos rodando x64) e sobre uma mudança adicional do web.config para isso. Eu tentei tudo isso, e ainda não consigo fazer isso funcionar a partir de um aplicativo da web asp.net. E sim: reiniciei depois de aplicar as alterações no registro.

Então, o que devo fazer além das configurações descritas nas postagens acima, para suportar os URLs herdados que contêm caracteres percentuais?

Informações adicionais: o modo Pool de aplicativos está integrado.

Empurre depois de alguns dias. Não tem ideia de ninguém?

    
por Sebastian P.R. Gingter 30.01.2012 / 17:24

2 respostas

3

Aconteceu comigo, depois de fazer todas as modificações no Registro do Windows, fiquei preso como você estava. O problema foi corrigido depois que mudei o modo Pool de aplicativos para Clássico.

    
por 03.07.2012 / 11:10
0

Símbolos e comercial a menos que entre "/" e "/" e antes de "?" Os símbolos são operadores lógicos para URI e URLs, até os RFCs que os definiram. Você teria que trabalhar muito duro para usar algo como:

/request/to/path/?queryvar=value#nextval=value#next=val

e não:

/request/to/path/?queryvar=value&nextval=value

valores url_encoded e representação raw ascii funcionam muito bem, por exemplo, um RHO que atua como um Filtro de Gateway ASP.NET. Geralmente quando eu código ASP.NET, eu quase nunca fob com o IIS, a menos que seja um módulo de configuração principal ou plugin. O ASP.NET oferece suporte à cobertura total do estado na API.

Quase todas as línguas com API de web suportam a tradução de caracteres codificados em url naturalmente. Escrever uma pequena classe que manipula suas solicitações de gateway e analisa sua cadeia de solicitação é uma maneira mais fácil de lidar com símbolos especiais do que brincar com o IIS no registro.

Tenha em mente a restrição de caracteres de alto nível que pode causar estouro de buffer. Certifique-se de que os caracteres de alto bit e os caracteres de repetição específicos não permitem exceções de estouro. Você pode digitar a letra de um U + 1000 passado, mas só precisa realmente dela em U + 0097 ou em seu múltiplo para uma solicitação em camadas.

    
por 10.10.2012 / 06:41