Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net HttpWebRequest挂起_Asp.net_Httpwebrequest - Fatal编程技术网

Asp.net 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);

在我目前正在开发的应用程序中,有一个后端java应用程序正在缓存大量数据。asp.net部分允许用户更新数据库表。每次更新数据库时,都应清除java应用程序中的缓存。所以基本上我有一个4个URL的列表,每个URL都需要点击才能清除缓存。我的基本解决方案是循环遍历每个url,创建一个HttpWebRequest,然后获取响应。因此,基本上我对每个请求都有以下内容:

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();
            }