WEB API サービスからの集計カウントを要求する jQuery AJAX 呼び出しがあります。WEB API は要求を処理し、ストアド プロシージャ (SQL サーバー) を呼び出して要求パラメーターを渡します。ストアド プロシージャに時間がかかります (要求の処理に 10 分以上かかります)。ストアド プロシージャに 10 分以上かかる場合、jQuery AJAX 呼び出しは、ステータス コード 12002 または 12152 の不明なエラーを報告しています (これらのエラーは接続の問題に関連しています)。 Web サーバーは 10 分後にストアド プロシージャから結果を受け取ります. 問題が発生しているブラウザは IE8.0 , IE9.0, firefox ですが、chrome は 10 分以上待っても応答を受信しています. 保持する解決策はありますか?サーバーとクライアントの間の通信は有効です.接続要求ヘッダーを ajax から "close","open" に変更してみました 、「キープアライブ」何も機能しません。助けてください。
Java スクリプト コード。
$.ajax({
type: "post",
url: URLPrefix + 'api/querydispatcher/summary',
data: s,
success: function (data) {
window.clearInterval(int);
$('#wait').hide();
$('#CancelSummary').hide();
$('#backgroundmodal').hide();
$("#tResultTotals").slideDown('slow');
DeserializeJSon(eval(data));
if (!CancelSummaryRequest) {
CancelSummaryRequest = true;
$('#DownloadDetailedReport').show();
}
else {
$('#tResultTotals').hide();
}
},
$('#wait').hide();
$('#CancelSummary').hide();
$('#backgroundmodal').hide();
error_Dialog(request.responseText);
}
});
}
Server Side (WEB API) code.
[WebInvoke(UriTemplate = "summary", Method = "POST")]
public List<QueryResult> GetSummaryReport_Queue(JsonValue SummaryXML)
{
MyContext db = new MyContext();
DateTime StartTime = DateTime.Now;
string sumXML = SummaryXML["XMLJson"].ToString().Replace(@"\", "").Replace(@"""", "");
//These are two codes created by JSon @ the end of the String that need to be trim off.
sumXML = sumXML.Replace("u000du000a", "");
List<QueryResult> results = null;
XElement xxml = XElement.Parse(sumXML);
string ReportID = xxml.Descendants("ReportId").FirstOrDefault().Value;
string err = "";
try
{
results = db.fnReportResult(sumXML).ToList();
}
catch (Exception e)
{
err = e.Message + " : "+(e.InnerException!=null?e.InnerException.Message : "");
throw e;
}
finally {
///--- Record Audit Info.
double RunningTime = DateTime.Now.Subtract(StartTime).TotalMilliseconds;
string parameters = "ApplicationType:Query_Dispatcher" + "||User:" + SummaryXML["UserId"].ToString().Replace(@"\", "").Replace(@"""", "") +
"||Session:" + SummaryXML["Session"].ToString().Replace(@"\", "").Replace(@"""", "") +
"||Running Time:" + RunningTime.ToString() + "||Request Type:Summary Report" +
"||Report ID:" + ReportID +
"||Error:" + err;
Audit SaveAudit = new Audit();
SaveAudit.WriteAudit("Query_Builder", parameters);
//####-Recording Audit Info
}
return results;
}