私が現在取り組んでいるアプリケーションには、大量のデータをキャッシュしているバックエンドJavaアプリがあります。asp.netの部分は、ユーザーがデータベーステーブルを更新できるようにします。DBが更新されるたびに、Javaアプリケーションのキャッシュをクリアする必要があります。つまり、基本的に、キャッシュをクリアするためにそれぞれをヒットする必要がある4つの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:長さの予期されるエラーをスローします。
私は本当にここで立ち往生しています、そしてどんな助けでも大いに感謝されます。
私が抱えているHttpWebRequestの問題の解決策か、各URLを呼び出すための別の解決策のどちらかが機能しますが、私は気が利いていません。
前もって感謝します。