IIS でワーカー プロセスを表示しているときにリクエストがハングすることに気付きました。当初、HTTP タイムアウト値を指定すると問題が解決すると考えていましたが、そうではありませんでした。問題の原因となっているコードの一部を特定しましたが、何が原因であるかはまだわかりません。
次のコードは、キーと値のペアのリストを受け取り、HTTP Post 要求を作成し、値を POST ペイロードに入れます。ほとんどの場合問題なく動作しますが、何が問題を引き起こしているのかはわかりません。
public List<KeyValuePair<string, string>> Data { get; set; }
public string Invoke()
{
StringBuilder paramBuilder = new StringBuilder();
for (int i = 0; i < Data.Count; i++)
{
var d = Data[i];
string delimeter = i < Data.Count - 1 ? "&" : string.Empty;
paramBuilder.AppendFormat("{0}={1}{2}", d.Key.Trim(), d.Value != null ? HttpUtility.UrlEncode(d.Value.Trim()) : string.Empty, delimeter);
}
WebRequest request = WebRequest.Create(Url);
request.ContentLength = paramBuilder.Length;
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
Stream rs = request.GetRequestStream();
ASCIIEncoding encoding = new ASCIIEncoding();
var postData = encoding.GetBytes(paramBuilder.ToString());
rs.Write(postData, 0, postData.Length);
var response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string str = reader.ReadToEnd();
rs.Close(); //JUST ADDED _ MAYBE THESE WERE THE PROBLEM?
reader.Close(); //JUST ADDED - MAYBE THESE WERE THE PROBLEM?
return str;
}
どんなアイデアでも役に立ちます。
ありがとう