C# Webclient.UploadString引发内部服务器错误
我使用Web客户端上传字符串将Xml作为字符串发送到我创建的另一台服务器。 调用UploadString时,我得到一个(500内部服务器错误)。我正在调试服务,该服务可能会引发异常,但我从未到达那里!(还有一份日志可以证明这一点)。 Im以以下方式使用web客户端:C# Webclient.UploadString引发内部服务器错误,c#,.net,webclient,C#,.net,Webclient,我使用Web客户端上传字符串将Xml作为字符串发送到我创建的另一台服务器。 调用UploadString时,我得到一个(500内部服务器错误)。我正在调试服务,该服务可能会引发异常,但我从未到达那里!(还有一份日志可以证明这一点)。 Im以以下方式使用web客户端: using(WebClient webclient = new WebClient()) { webclient.Encoding = UTF8Encoding.UTF8; webclient.Headers[Htt
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);
}
我知道以下事实:
谢谢是的,将请求发送到asp.net时有一个限制:
<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" />
</system.web>
</configuration>
(关于iis7,它是:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
)
检查您的远程服务,看看您的请求长度是否太长。还要注意请求超时,如果时间太长,可能会减少上载)有一些解决方案可以避免这个问题:对请求进行分块,或者使用能够直接处理请求的框架
从服务器的角度来看,这是一个内部错误,但是您可以通过将错误转换为增加executiontimeout属性来改变行为:
<system.web>
<httpRuntime executionTimeout="200" maxRequestLength="1048576" />
</system.web>
尝试先发送一个空白的sting,然后发送实际的字符串
using(WebClient webclient = new WebClient())
{
webclient.Encoding = UTF8Encoding.UTF8;
webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
webclient.UseDefaultCredentials = true;
blankString="";
webclient.UploadString(url, blankString);
webclient.UploadString(url, stringToUpload);
}