Je construis un site dans lequel je voudrais créer un fichier côté client à partir de la valeur d'un élément textarea.
J'ai le code en place pour le faire, mais j'obtiens cette erreur
Erreur HTTP 404.15 - introuvable Le module de filtrage des demandes est configuré pour refuser une demande dont la chaîne de requête est trop longue.
Existe-t-il un moyen de contourner cela afin que je puisse traiter les demandes de n'importe quelle taille?
Sinon, existe-t-il un moyen de générer des fichiers côté client sans utiliser le système de fichiers / l'objet x actif?
Merci
c#
javascript
asp.net-mvc
web-config
query-string
some_bloody_fool
la source
la source
Réponses:
Ajoutez ce qui suit à votre web.config:
Voir:
http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits
Mis à jour pour refléter les commentaires.
requestLimits, élément pour requestFiltering [schéma des paramètres IIS]
Vous devrez peut-être ajouter ce qui suit dans votre web.config également
Voir: Élément httpRuntime (schéma de paramètres ASP.NET)
Bien sûr, les nombres (32768 et 65536) dans les paramètres de configuration ci-dessus ne sont que des exemples. Vous n'êtes pas obligé d'utiliser ces valeurs exactes.
la source
Dans mon cas (Visual Studio 2012 / IIS Express / ASP.NET MVC 4 app / .Net Framework 4.5), ce qui fonctionnait vraiment après 30 minutes d'essais et d'erreurs était de définir la
maxQueryStringLength
propriété dans la<httpRuntime>
balise:maxQueryStringLength
par défaut2048
.En savoir plus ici:
Élargir la plage d'URL autorisées
J'ai essayé de le configurer
<system.webServer>
comme le suggère @MattVarblow , mais cela n'a pas fonctionné ... et c'est parce que j'utilise IIS Express (basé sur IIS 8) sur ma machine de développement avec Windows 8.Lorsque j'ai déployé mon application dans l'environnement de production (Windows Server 2008 R2 avec IIS 7), IE 10 a commencé à renvoyer des erreurs 404 dans les demandes AJAX avec de longues chaînes de requête. Ensuite, j'ai pensé que le problème était lié à la chaîne de requête et j'ai essayé la réponse de @ MattVarblow. Cela a juste fonctionné sur IIS 7. :)
la source
Autre chose à vérifier: si votre site utilise MVC, cela peut arriver si vous avez ajouté [Authorize] à votre classe de contrôleur de connexion. Il ne peut pas accéder à la méthode de connexion car elle n'est pas autorisée, donc il redirige vers la méthode de connexion -> boom.
la source
Si vous rencontrez ce problème lors de l'exécution d'un serveur Web IIS 8.5, vous pouvez utiliser la méthode suivante.
Tout d'abord, recherchez le module "Request Filtering" dans le site IIS sur lequel vous travaillez, puis double-cliquez dessus ...
Ensuite, vous devez faire un clic droit dans la zone blanche ci-dessous, puis cliquer sur l'option du menu contextuel appelée "Modifier les paramètres de la fonctionnalité" .
Ensuite, la dernière chose à faire est de changer la valeur "Chaîne de requête maximale (octets)" de 2048 à quelque chose de plus approprié tel que 5000 pour vos besoins.
la source
J'ai eu un problème similaire en essayant de déployer une application Web ASP sur IIS 8. Pour le résoudre, j'ai fait comme Matt et Leniel l'ont suggéré ci-dessus. Mais j'ai également dû configurer le paramètre d'authentification de mon site pour activer l'authentification anonyme. Et cela a fonctionné pour moi.
la source
J'ai dû ajouter [AllowAnonymous] aux fonctions ActionResult dans ma page de connexion car l'utilisateur n'était pas encore authentifié.
la source
Si votre site Web utilise l'authentification, mais que vous n'avez pas configuré la méthode d'authentification correcte dans IIS (par exemple, Basic, Forms, etc.), le navigateur sera bloqué dans une boucle de redirection. Cela fait que l'URL de redirection s'allonge de plus en plus jusqu'à ce qu'elle explose.
la source
Cela générera également une erreur lorsque vous passerez une grande chaîne dans le paramètre d'appel ajax.
donc pour cela, utilisez toujours le type post dans ajax pour résoudre votre problème à 100% et il n'est pas nécessaire de définir la longueur dans web.config.
// var UserId = tableau de 1000 userids
$ .ajax ({global: false, url: SitePath + "/ User / getAussizzMembersData", "data": {UserIds: UserId}, "type": "POST", "dataType": "JSON"}}
la source
Pour résoudre ce problème, vérifiez dans le code source si la
Form
balise a une propriétémethod
est l'état get / set.Si tel est le cas, la
method
propriété doit être supprimée.la source