Uri字符串太长-对于我POST方法的输入参数

3

我使用 Fiddler 调用我的方法,对于小字符串,它可以完美地工作。但是,我的输入参数可能是一个 250MB 文件的内容。

这是我的调用方式:

POST

http://localhost:23234/api/myfiles

User-Agent: Fiddler
Host: localhost:23234
Content-Type: application/json
Content-Length: 317210

在请求正文部分,我有一个包含5,000行内容的文件。然而,这个方法没有被调用,反而出现了500错误,错误信息为:Uri字符串过长。我该怎么做才能让它正常工作呢?
1个回答

4

如果您正在IIS中托管API,则应通过将以下内容添加到您的web.config来增加允许的最大请求大小(默认为4MB):

<system.web>
    <!-- The value is in KB -->
    <httpRuntime maxRequestLength="1048576" />
</system.web>

如果您正在使用集成管道模式:

<system.webServer>
    <security>
        <requestFiltering>                          
            <!-- The value is in bytes -->
            <requestLimits maxAllowedContentLength="1073741824" />
        </requestFiltering>
    </security>
</system.webServer>

这将允许发送1GB的请求。

另外,您似乎已将Content-Type设置为application/json,因此请确保您正在POST有效的JSON负载。最后但并非最不重要的是,请确保在Fiddler组合框中选择POST动词(默认为GET)。


我在 web.config 文件中添加了 <httpRuntime maxRequestLength="2048576"/>,现在该方法被调用并且输入参数具有良好的值。但是,在方法的第一行,我有这样一段代码:XDocument doc = XDocument.Load(theInputParameter);,并且它在此处崩溃,与之前相同的错误。 - petko_stankoski
你是否在 <system.webServer> 标签上设置了 <requestLimits>?如果你使用的是集成管道模式,这是必要的。此外,你展示了一个 XDocument 类,但将 Content-Type 参数设置为 application/json 是不一致的。 - Darin Dimitrov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接