私のMVCアプリケーションでは、10秒ごとに繰り返しajax呼び出しを使用しています。しばらくすると、DBサーバーがアプリケーションサーバーから切断され、アプリケーションが実行されているブラウザで大量のメモリリークが発生することがあります。
私のコードは、
10秒ごとに繰り返しajax呼び出しを行うためにjquery.timer.jsを使用しています
function class1() {
}
class1.prototype. funtion1 = function () {
$.ajax({
type: "POST",
url: "/TestContoller/ActionOne",
success: function (result) {
$('#DivActionOne').html(result);
},
traditional: true,
error: function (req, status, error) {
}
});
}
//Likewise for funtion2, funtion3, funtion4, funtion5
var count = 0;
var timer = $.timer(function () {
$('#counter').html(++count);
var class1 = new class1();
var funtionOne= class1.funtion1;
var funtionTwo= class1.funtion2;
var funtionThree= class1.funtion3;
var funtionFour= class1.funtion4;
var funtionFive= class1.funtion5;
var currentSec = count;
if ((currentSec % 10) == 0) {
funtionOne ();
funtionTwo ();
funtionThree ();
funtionFour ();
funtionFive ();
}
});
timer.set({ time: 1000, autostart: true });
接続が失われたとき、トレースログを確認し、次のエラーメッセージを見つけました。
メッセージ:System.ServiceModel.CommunicationException:基になる接続が閉じられました:存続することが期待されていた接続がサーバーによって閉じられました。---> System.Net.WebException:基になる接続が閉じられました:存続することが期待されていた接続がサーバーによって閉じられました。---> System.IO.IOException:トランスポート接続からデータを読み取れません:既存の接続がリモートホストによって強制的に閉じられました。---> System.Net.Sockets.SocketException:既存の接続がSystem.Net.Sockets.NetworkStream.Read(Byte []バッファー、Int32オフセット、Int32サイズ)のリモートホストによって強制的に閉じられました---内部の終わり例外スタックトレース---System.Net.Sockets.NetworkStream.Read(Byte []バッファー、Int32オフセット、Int32サイズ)でSystem.Net.PooledStream.Read(Byte []バッファー、Int32オフセット、
これを整理するのを手伝ってください。