Estou criando um site no qual gostaria de criar um lado do cliente de arquivo a partir do valor de um elemento da área de texto.
Eu tenho o código no lugar para fazer isso, mas estou recebendo este erro
Erro HTTP 404.15 - Não encontrado O módulo de filtragem de solicitações está configurado para negar uma solicitação em que a string de consulta é muito longa.
Existe uma maneira de substituir isso para que eu possa processar solicitações de qualquer tamanho?
Caso contrário, existe uma maneira de gerar arquivos do lado do cliente sem usar o sistema de arquivos / objeto x ativo?
obrigado
c#
javascript
asp.net-mvc
web-config
query-string
some_bloody_fool
fonte
fonte
Respostas:
Adicione o seguinte ao seu web.config:
Vejo:
http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits
Atualizado para refletir os comentários.
Elemento requestLimits for requestFiltering [Esquema de configurações do IIS]
Pode ser necessário adicionar o seguinte no seu web.config também
Consulte: Elemento httpRuntime (esquema de configurações do ASP.NET)
Obviamente, os números (32768 e 65536) nas configurações acima são apenas exemplos. Você não precisa usar esses valores exatos.
fonte
No meu caso (Visual Studio 2012 / IIS Express / aplicativo ASP.NET MVC 4 / .Net Framework 4.5), o que realmente funcionou após 30 minutos de tentativa e erro foi definir a
maxQueryStringLength
propriedade na<httpRuntime>
tag:maxQueryStringLength
o padrão é2048
.Mais sobre isso aqui:
Expandindo o intervalo de URLs permitidos
Tentei configurá-lo
<system.webServer>
como o @MattVarblow sugere, mas não funcionou ... e isso é porque estou usando o IIS Express (baseado no IIS 8) na minha máquina de desenvolvimento com o Windows 8.Quando implantei meu aplicativo no ambiente de produção (Windows Server 2008 R2 com IIS 7), o IE 10 começou a retornar erros 404 em solicitações AJAX com seqüências de caracteres longas de consulta. Então pensei que o problema estava relacionado à string de consulta e tentei a resposta de @ MattVarblow. Funcionou apenas no IIS 7. :)
fonte
Outra coisa a verificar: se o seu site estiver usando MVC, isso pode acontecer se você tiver adicionado [Autorizar] à sua classe de controlador de login. Ele não pode acessar o método de login porque não está autorizado e, portanto, redireciona para o método de login -> boom.
fonte
Se você encontrar esse problema ao executar um servidor Web IIS 8.5, poderá usar o seguinte método.
Primeiro, encontre o módulo "Request Filtering" no site do IIS em que está trabalhando e clique duas vezes nele ...
Em seguida, clique com o botão direito do mouse na área branca mostrada abaixo e clique na opção do menu de contexto chamada "Editar configurações de recursos" .
A última coisa a fazer é alterar o valor "Maximum query string (Bytes)" de 2048 para algo mais apropriado, como 5000, para suas necessidades.
fonte
Eu tive um problema semelhante ao tentar implantar um aplicativo Web ASP no IIS 8. Para corrigi-lo, fiz o que Matt e Leniel sugeriram acima. Mas também tive que definir a configuração de autenticação do meu site para ativar a autenticação anônima. E isso funcionou para mim.
fonte
Eu tive que adicionar [AllowAnonymous] às funções ActionResult na minha página de login porque o usuário ainda não estava autenticado.
fonte
Se o seu site estiver usando autenticação, mas você não tiver o método de autenticação correto configurado no IIS (por exemplo, Básico, Formulários etc.), o navegador ficará preso em um loop de redirecionamento. Isso faz com que o URL de redirecionamento fique cada vez mais longo até explodir.
fonte
Também irá gerar erro quando você passar uma string grande no parâmetro de chamada ajax.
portanto, para esse uso sempre, digite post no ajax resolverá seu problema 100% e não será necessário definir o tamanho no web.config.
// var UserId = matriz de 1000 IDs de usuário
$ .ajax ({global: false, url: SitePath + "/ User / getAussizzMembersData", "data": {UserIds: UserId}, "type": "POST", "dataType": "JSON"}}
fonte
Para resolver esse problema, verifique no código-fonte se a
Form
tag tem uma propriedademethod
como get / set state.Nesse caso, a
method
propriedade deve ser removida.fonte