首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.Net web服务大URL

问ASP.Net web服务大URL
EN

Stack Overflow用户
提问于 2013-05-25 09:19:16
回答 2查看 1.1K关注 0票数 1

我们必须通过网址向ASP.Net web服务发送一个大数据包。由于某些原因,我们不能使用POST,所以我们对XML包进行URL编码,并向服务发出GET请求。

代码语言:javascript
复制
http://service.example.com/collect?content=AAAAAAAA...(+5000 characters)

服务响应为

错误404 -找不到文件或目录。

我已经读过,没有错误代码的最大内容长度-超过,所以IIS发送回这个404错误。知道了这一点,我以下列方式更改了配置,以允许大请求:

更改查询字符串长度、最大URL长度、最大请求长度和停用验证

代码语言:javascript
复制
<httpRuntime 
    requestValidationMode="2.0" 
    maxQueryStringLength="262144000" 
    maxUrlLength="262144000" 
    maxRequestLength="262144000" />
...
<pages validateRequest="false" />
...
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="262144000" />
        </requestFiltering>            
    </security>
</system.webServer>

我仍然收到同样的错误。如何使用非常大/长的URL向我的web服务提出请求?

更新1

我不会发图像的。内容如下:

代码语言:javascript
复制
<packet date="1243235246436">
    <param type="1" id="45">
        5
    </param>
</packet>

没有新的行字符和URL编码。

更新2

在IIS请求过滤中将限制设置为较大数目之后,404现在被转换为

HTTP错误400请求头的大小太长。

这是因为标题的大小现在太大了。尝试按照这文章中的说明添加MaxFieldLength和MaxRequestBytes注册表项,但我仍然被限制在16k URL长度。我能做些什么才能发送1,000,000个长URL?这有可能吗?我能做些什么来发送至少65k的长URL?这是一个标题可以具有的最大长度,但是我的设置没有被考虑。

EN

回答 2

Stack Overflow用户

发布于 2013-05-25 09:27:15

maxQueryStringLength的MSDN文档还讨论了在非常长的URL情况下的IIS过滤。你查过这了吗?这里提到的属性名称有一点不同:maxQueryString,maxUrl。

票数 2
EN

Stack Overflow用户

发布于 2013-05-25 11:10:01

GET请求仅受浏览器对URL字符串长度的限制。在IE中是2,083个字符,减去实际路径中的字符数。其他浏览器对URL字符串的长度没有明确的限制。这些文章可能对你有帮助。

http://www.boutell.com/newfaq/misc/urllength.html

http://support.microsoft.com/kb/q208427

RFC 2616,“超文本传输协议-- HTTP/1.1”没有指定任何URL长度的要求,因此浏览器可以自由地规定他们认为合适的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16748122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档