如何配置web.config以允许任何长度的请求

2020/11/16 23:22 · javascript ·  · 0评论

我正在建立一个站点,在该站点中我想从textarea元素的值创建文件客户端。

我有执行此操作的代码,但出现此错误

HTTP错误404.15-找不到请求过滤模块配置为在查询字符串过长的情况下拒绝请求。

有没有一种方法可以覆盖它,以便我能够处理任何大小的请求?

如果没有,有没有一种方法可以在不使用filesystem / active x对象的情况下生成客户端文件?

谢谢

将以下内容添加到您的web.config中:

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxQueryString="32768"/>
    </requestFiltering>
  </security>
</system.webServer>

看到:

http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits

更新以反映评论。

requestFiltering的requestLimits元素[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应用程序/.Net Framework 4.5),经过30分钟的反复试验,真正起作用的是maxQueryStringLength<httpRuntime>标记中设置属性

<httpRuntime targetFramework="4.5" maxQueryStringLength="10240" enable="true" />

maxQueryStringLength默认为2048

有关此的更多信息:

扩大允许的URL范围


我尝试<system.webServer>按照@MattVarblow的建议进行设置,但这没有用……这是因为我在Windows 8的开发机上使用IIS Express(基于IIS 8)。

当我将应用程序部署到生产环境(带有IIS 7的Windows Server 2008 R2)时,IE 10开始在带有长查询字符串的AJAX请求中返回404错误。然后我认为问题与查询字符串有关,并尝试了@MattVarblow的答案。它仅适用于IIS7。:)

其他要检查的内容:如果您的站点使用的是MVC,则在您将[Authorize]添加到登录控制器类中时,可能会发生这种情况。由于未经授权,它无法访问登录方法,因此它将重定向到登录方法-> boom。

如果在运行IIS 8.5 Web服务器时遇到此问题,则可以使用以下方法。

首先,在您正在使用的IIS站点中找到“请求过滤”模块,然后双击它...

在此处输入图片说明

接下来,您需要右键单击下面显示的白色区域,然后单击名为“编辑功能设置”的上下文菜单选项

在此处输入图片说明

然后,最后要做的是将“最大查询字符串(字节)”的值从2048更改为更合适的值,例如5000

在此处输入图片说明

尝试将ASP Web应用程序部署到IIS 8时,我遇到了类似的问题。要解决该问题,我按照上面的Matt和Leniel的建议进行了操作。而且还必须配置我的站点的身份验证设置以启用匿名身份验证。这对我有用。

我必须在登录页面的ActionResult函数中添加[AllowAnonymous],因为该用户尚未通过身份验证。

如果您的网站正在使用身份验证,但是您没有在IIS中设置正确的身份验证方法(例如,Basic,Forms等),则浏览器将陷入重定向循环。这将导致重定向URL越来越长,直到爆炸。

当您在ajax调用参数中传递大字符串时,它也会产生错误。

因此,对于始终使用ajax中的post类型,将可以100%解决您的问题, 而无需在web.config中设置长度。

// var UserId = 1000个用户ID的数组

$ .ajax({global:false,url:SitePath +“ / User / getAussizzMembersData”,“ data”:{UserIds:UserId},“ type”:“ POST”,“ dataType”:“ JSON”}}

HTTP错误404.15-找不到请求过滤模块配置为在查询字符串过长的情况下拒绝请求。

要解决此问题,请在源代码中检查Form标签是否具有属性method为“获取/设置”状态。

如果是这样,method应删除属性。

本文地址:http://javascript.askforanswer.com/ruhepeizhiweb-configyiyunxurenhechangdudeqingqiu.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!