5

.NET 3.5 SP1 で実行しています。

最近、IE で一部のユーザーが「メモリ不足」エラーを時々受け取るようになりました。これは常に起こるわけではありません。私はそれを数回複製することに成功し、AjaxControlToolkit.Common.Common.js ファイルからのこのコードが無限ループを引き起こしていることがわかりました: AjaxControlToolkit.TextBoxWrapper.registerClass('AjaxControlToolkit.TextBoxWrapper', Sys.UI.Behavior) ;AjaxControlToolkit.TextBoxWrapper.validatorGetValue = function(id) { var control = $get(id);if (control && control.AjaxControlToolkitTextBoxWrapper) { return control.AjaxControlToolkitTextBoxWrapper.get_Value();} return AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue(id); }

control.AjaxControlToolkitTextBoxWrapper が定義されていないため、最後の行 (_originalValidatorGetValue を呼び出します) は基本的にこの正確な関数を何度も呼び出します。

そのすぐ上に定義されている関数は AjaxControlToolkit.TextBoxWrapper.get_Wrapper(control) であり、ラッパーが存在しない場合はラッパーを作成するために使用できますが、フレームワークを変更したいという気持ちはありません。このバグを実際に見たのは 1 人だけです。

バグは常に発生するとは限りません。読み込まれた最初の URL に AJAX 履歴ポイントが含まれている場合に発生するようです。ページを開いて操作すると、履歴ポイントが追加されますが、問題なく動作します。しかし、URL をコピーして別のブラウザ ウィンドウに貼り付けると、この問題が発生します。

したがって、私の推測では、ラッパーを適切にセットアップしない履歴コントロールに何か問題があると思います。それでも、そこには無限ループがあるようです。

アイデア/手がかりはありますか?

Microsoft Connect のバグ レポートに記入しました。記入してさまざまなシナリオをテストしているときに、ローカルでは正常に機能しているが、リモートでは機能していないことに気付きました。私の運用環境と開発環境を比較すると、CombineScripts がローカルで false であることに気付きました。それを本番サーバーにデプロイすると、問題が解決したようです。

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=373171

4

2 に答える 2

1

ScriptManager から LoadScriptsBeforeUI='false' を削除すると、この問題は解決します。

于 2010-09-03T09:41:21.810 に答える
0

Microsoft Connectにバグ レポートを投稿することをお勧めします。

于 2008-10-04T16:15:28.217 に答える