获取响应状态代码并不表示成功:如果文件太大,则为 500
Getting Response status code does not indicate success: 500 if file is too large
我正在尝试使用 HttpClient
将大量 XML 数据(~10mb)发送到我的本地 IIS 服务器,但总是收到 500 错误:Response status code does not indicate success: 500
:
StringContent content = new StringContent(xmlData, Encoding.UTF8, "application/xml");
var request = new HttpRequestMessage(HttpMethod.Post, redirectedAddress) { Content = content };
HttpClient client = new HttpClient();
client.SendAsync(request).ContinueWith(
postTask =>
{
var status = postTask.Result.EnsureSuccessStatusCode();
});
所以 EnsureSuccessStatusCode
方法抛出 500 错误,但是如果我发送一个小得多的文件,比如 50kb,它可以正常工作。
我做了一些研究,有人建议在我的 IIS 配置中增加数据的最大大小,所以我做了:
<system.web>
<compilation targetFramework="4.5" />
<httpRuntime executionTimeout="360"
maxRequestLength="65536"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true" />
和
<system.webServer>
<security >
<requestFiltering>
<requestLimits maxAllowedContentLength="1000000000000" />
</requestFiltering>
</security>
</system.webServer>
但仍然不走运,一旦数据大小超过 5mb,我就得到异常。我还需要设置什么吗?
您还需要增加 maxRequestLength。目前它设置为 65536,大约 6 mb,您需要将其加倍以满足您的需要。详情见此:https://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.maxrequestlength(v=vs.110).aspx
我正在尝试使用 HttpClient
将大量 XML 数据(~10mb)发送到我的本地 IIS 服务器,但总是收到 500 错误:Response status code does not indicate success: 500
:
StringContent content = new StringContent(xmlData, Encoding.UTF8, "application/xml");
var request = new HttpRequestMessage(HttpMethod.Post, redirectedAddress) { Content = content };
HttpClient client = new HttpClient();
client.SendAsync(request).ContinueWith(
postTask =>
{
var status = postTask.Result.EnsureSuccessStatusCode();
});
所以 EnsureSuccessStatusCode
方法抛出 500 错误,但是如果我发送一个小得多的文件,比如 50kb,它可以正常工作。
我做了一些研究,有人建议在我的 IIS 配置中增加数据的最大大小,所以我做了:
<system.web>
<compilation targetFramework="4.5" />
<httpRuntime executionTimeout="360"
maxRequestLength="65536"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true" />
和
<system.webServer>
<security >
<requestFiltering>
<requestLimits maxAllowedContentLength="1000000000000" />
</requestFiltering>
</security>
</system.webServer>
但仍然不走运,一旦数据大小超过 5mb,我就得到异常。我还需要设置什么吗?
您还需要增加 maxRequestLength。目前它设置为 65536,大约 6 mb,您需要将其加倍以满足您的需要。详情见此:https://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.maxrequestlength(v=vs.110).aspx