我使用Web Client UploadString将Xml作为字符串发送到我创建的另一台服务器。 调用UploadString时,我得到一个(500内部服务器错误)。我正在调试可能会抛出异常但仍然没有到达的服务! (还有一个日志来证明它)。 我通过以下方式使用Web客户端:
using(WebClient webclient = new WebClient())
{
webclient.Encoding = UTF8Encoding.UTF8;
webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
webclient.UseDefaultCredentials = true;
webclient.UploadString(url, stringToUpload);
}
我知道以下事实:
我发送的字符串大小是否有限制?如果是这样,我该怎么做才能启用此发送,还是有另一种方法来处理这种情况? 此外,如果服务器真的不是内部服务器错误,为什么会抛出500?
由于
答案 0 :(得分:0)
是的,当请求发送到asp.net时有一个限制:
<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" />
</system.web>
</configuration>
(在iis7上是:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
)
检查您的远程服务,看看您的请求长度是否过长。还要注意请求超时,如果花费太长时间,可能会削减上传。有一些解决方案可以回避这个问题:分块您的请求,或使用能够直接处理它的框架。
从服务器的角度来看,它被视为内部错误,但您可以通过将错误按摩到something else来改变行为
答案 1 :(得分:0)
增加执行时间attribut:
<system.web>
<httpRuntime executionTimeout="200" maxRequestLength="1048576" />
</system.web>
答案 2 :(得分:0)
尝试先发送空白字符串,然后再发送实际字符串。
plot(Xfinal)