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.
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?
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.
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.
Tags configuration url iis-7.5 asp.net