我正在构建一个站点,我想在其中根据 textarea 元素的值创建文件客户端。
我有执行此操作的代码,但出现此错误
HTTP 错误 404.15 - Not Found 请求过滤module被配置为拒绝查询字符串太长的请求。
有没有办法覆盖它,以便我能够处理任何大小的请求?
如果没有,有没有办法在不使用文件系统/活动 x 对象的情况下生成文件客户端?
谢谢
我正在构建一个站点,我想在其中根据 textarea 元素的值创建文件客户端。
我有执行此操作的代码,但出现此错误
HTTP 错误 404.15 - Not Found 请求过滤module被配置为拒绝查询字符串太长的请求。
有没有办法覆盖它,以便我能够处理任何大小的请求?
如果没有,有没有办法在不使用文件系统/活动 x 对象的情况下生成文件客户端?
谢谢
将以下内容添加到您的 web.config:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="32768"/>
</requestFiltering>
</security>
</system.webServer>
看:
http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits
更新以反映评论。
requestLimits 元素用于 requestFiltering [IIS 设置架构]
您可能还需要在 web.config 中添加以下内容
<system.web>
<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
</system.web>
请参阅:httpRuntime 元素(ASP.NET 设置架构)
当然,上面配置设置中的数字(32768 和 65536)只是示例。您不必使用这些确切的值。
就我而言(Visual Studio 2012 / IIS Express / ASP.NET MVC 4 app / .Net Framework 4.5)经过 30 分钟的反复试验后,真正起作用的是maxQueryStringLength
在<httpRuntime>
标签中设置属性:
<httpRuntime targetFramework="4.5" maxQueryStringLength="10240" enable="true" />
maxQueryStringLength
默认为2048
.
更多关于它的信息:
我尝试<system.webServer>
按照@MattVarblow 的建议进行设置,但没有奏效……这是因为我在装有 Windows 8 的开发机器上使用 IIS Express(基于 IIS 8)。
当我将我的应用程序部署到生产环境(带有 IIS 7 的 Windows Server 2008 R2)时,IE 10 开始在带有长查询字符串的 AJAX 请求中返回 404 错误。然后我认为问题与查询字符串有关,并尝试了@MattVarblow 的回答。它只适用于 IIS 7。:)
要检查的其他事项:如果您的站点使用 MVC,如果您将 [Authorize] 添加到您的登录控制器类,则可能会发生这种情况。它无法访问登录方法,因为它没有被授权,所以它重定向到登录方法 --> 繁荣。
当您在 ajax 调用参数中传递大字符串时,它也会产生错误。
因此,始终在 ajax 中使用类型 post 将100%解决您的问题 ,无需在 web.config 中设置长度。
// var UserId= 1000 个用户 ID 的数组
$.ajax({ global: false, url: SitePath + "/User/getAussizzMembersData", "data": { UserIds: UserId}, "type": "POST", "dataType": "JSON" }}