我有一个流量很大的 aspx 页面,它根据每个用户的请求调用 Web 服务,如下所示。
string uri = "Path.asmx";
string soap = "soap xml string";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Headers.Add("SOAPAction", "\"http://xxxxxx"");
request.ContentType = "text/xml;charset=\"utf-8\"";
request.Accept = "text/xml";
request.Method = "POST";
using (Stream stm = request.GetRequestStream())
{
using (StreamWriter stmw = new StreamWriter(stm))
{
stmw.Write(soap);
}
}
WebResponse response = request.GetResponse();
response.close();
一切正常,但有时我会收到以下错误。
远程服务器返回错误:(500) 内部服务器错误。 在 System.Net.HttpWebRequest.GetResponse()
有人知道这个错误吗?有人可以告诉我我做错了吗。
最佳答案
对我来说,发生此错误是因为我有 2 个 Web API 操作,它们具有完全相同的签名并且都具有相同的动词 HttpPost
,我所做的是更改其中一个动词(使用的那个用于更新)到 PUT 并且错误被删除。我的 catch 语句中的以下内容有助于找到问题的根源:
catch (WebException webex)
{
WebResponse errResp = webex.Response;
using (Stream respStream = errResp.GetResponseStream())
{
StreamReader reader = new StreamReader(respStream);
string text = reader.ReadToEnd();
}
}
关于c# - GetResponse() 发生 500 内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098945/