Estoy creando un sitio en el que me gustaría crear un archivo del lado del cliente a partir del valor de un elemento textarea.
Tengo el código para hacer esto, pero recibo este error
Error HTTP 404.15 - No encontrado El módulo de filtrado de solicitudes está configurado para denegar una solicitud donde la cadena de consulta es demasiado larga.
¿Hay alguna forma de anular esto para poder procesar solicitudes de cualquier tamaño?
Si no, ¿hay alguna manera de generar archivos del lado del cliente sin usar el sistema de archivos / objeto x activo?
Gracias
c#
javascript
asp.net-mvc
web-config
query-string
some_bloody_fool
fuente
fuente
Respuestas:
Agregue lo siguiente a su web.config:
Ver:
http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits
Actualizado para reflejar los comentarios.
Elemento requestLimits para requestFiltering [Esquema de configuración de IIS]
Es posible que también deba agregar lo siguiente en su web.config
Consulte: Elemento httpRuntime (Esquema de configuración de ASP.NET)
Por supuesto, los números (32768 y 65536) en la configuración anterior son solo ejemplos. No tiene que usar esos valores exactos.
fuente
En mi caso (Visual Studio 2012 / IIS Express / ASP.NET MVC 4 app / .Net Framework 4.5) lo que realmente funcionó después de 30 minutos de prueba y error fue establecer la
maxQueryStringLength
propiedad en la<httpRuntime>
etiqueta:maxQueryStringLength
por defecto2048
.Más sobre esto aquí:
Expandir el rango de URL permitidas
Intenté configurarlo
<system.webServer>
como sugiere @MattVarblow , pero no funcionó ... y esto se debe a que estoy usando IIS Express (basado en IIS 8) en mi máquina de desarrollo con Windows 8.Cuando implementé mi aplicación en el entorno de producción (Windows Server 2008 R2 con IIS 7), IE 10 comenzó a devolver errores 404 en solicitudes AJAX con largas cadenas de consulta. Luego pensé que el problema estaba relacionado con la cadena de consulta y probé la respuesta de @ MattVarblow. Simplemente funcionó en IIS 7. :)
fuente
Algo más para verificar: si su sitio está usando MVC, esto puede suceder si agregó [Autorizar] a su clase de controlador de inicio de sesión. No puede acceder al método de inicio de sesión porque no está autorizado, por lo que redirige al método de inicio de sesión -> boom.
fuente
Si se encuentra con este problema al ejecutar un servidor web IIS 8.5, puede usar el siguiente método.
Primero, busque el módulo "Filtrado de solicitudes" en el sitio IIS en el que está trabajando, luego haga doble clic en él ...
A continuación, debe hacer clic con el botón derecho en el área blanca que se muestra a continuación y luego hacer clic en la opción del menú contextual llamada "Editar configuración de funciones" .
Entonces, lo último que debe hacer es cambiar el valor de "Cadena de consulta máxima (Bytes)" de 2048 a algo más apropiado, como 5000 para sus necesidades.
fuente
Tuve un problema similar al tratar de implementar una aplicación web ASP en IIS 8. Para solucionarlo, hice lo que Matt y Leniel sugirieron anteriormente. Pero también tuve que configurar la configuración de autenticación de mi sitio para habilitar la autenticación anónima. Y eso funcionó para mí.
fuente
Tuve que agregar [AllowAnonymous] a las funciones de ActionResult en mi página de inicio de sesión porque el usuario aún no estaba autenticado.
fuente
Si su sitio web está utilizando autenticación, pero no tiene el método de autenticación correcto configurado en IIS (por ejemplo, Básico, Formularios, etc.), el navegador se quedará atascado en un bucle de redireccionamiento. Esto hace que la URL de redireccionamiento se alargue más y más hasta que explote.
fuente
También generará un error cuando pase una cadena grande en el parámetro de llamada ajax.
así que para ese tipo de uso, usar post post en ajax resolverá su problema al 100% y no es necesario establecer la longitud en web.config.
// var UserId = matriz de 1000 ID de usuario
$ .ajax ({global: false, url: SitePath + "/ User / getAussizzMembersData", "data": {UserIds: UserId}, "type": "POST", "dataType": "JSON"}}
fuente
Para resolver este problema, verifique en el código fuente si la
Form
etiqueta tiene una propiedadmethod
estado get / set.Si es así, la
method
propiedad debe ser eliminada.fuente