Asp.net HttpWebRequest挂起
在我目前正在开发的应用程序中,有一个后端java应用程序正在缓存大量数据。asp.net部分允许用户更新数据库表。每次更新数据库时,都应清除java应用程序中的缓存。所以基本上我有一个4个URL的列表,每个URL都需要点击才能清除缓存。我的基本解决方案是循环遍历每个url,创建一个HttpWebRequest,然后获取响应。因此,基本上我对每个请求都有以下内容:Asp.net HttpWebRequest挂起,asp.net,httpwebrequest,Asp.net,Httpwebrequest,在我目前正在开发的应用程序中,有一个后端java应用程序正在缓存大量数据。asp.net部分允许用户更新数据库表。每次更新数据库时,都应清除java应用程序中的缓存。所以基本上我有一个4个URL的列表,每个URL都需要点击才能清除缓存。我的基本解决方案是循环遍历每个url,创建一个HttpWebRequest,然后获取响应。因此,基本上我对每个请求都有以下内容: var request = (HttpWebRequest)WebRequest.Create(url);
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentLength = 0;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
string responseString = readStream.ReadToEnd();
returnList.Add(string.Format("Refresh response from {0}.<br />{1}", url, responseString));
readStream.Close();
receiveStream.Close();
}
在我本地的机器上,一切都很好。但当我部署到我们的开发服务器时,它只是挂起,什么也不做。如果我删除request.ContentLength=0;然后远程服务器抛出411:Length预期错误
我真的被困在这里,任何帮助都将不胜感激
无论是我遇到的HttpWebRequest问题的解决方案,还是调用每个URL的不同解决方案都可以,我并不挑剔
提前感谢。为什么要使用request.method作为POST?您是否发布了任何数据,如果没有,请尝试删除内容长度和请求方法。这肯定是网络问题。我尝试在负载平衡器上点击一个不同的url,但没有问题,所以java人员正在进行更改,这样我就可以点击负载平衡器,无论请求最终出现在哪个服务器上,都将确保清除所有服务器缓存 正在工作的代码:
var request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
string responseString = readStream.ReadToEnd();
returnString = string.Format(@"Refresh response from<br />{0}{1}", url, responseString);
readStream.Close();
receiveStream.Close();
}