2009-04-01 11 views
0

のちらつき起こすASP.Netレポートビューアーは、次のコード行があるのReportViewerによって生成されたHTMLでのFirefox

setTimeout("frames['ReportViewer1TouchSession0'].location.replace('/Reserved.ReportViewerWebControl.axd?...&TimerMethod=KeepAliveMethodReportViewer1TouchSession0...", 0); 

function KeepAliveMethodReportViewer1TouchSession0() { 
setTimeout("frames['ReportViewer1TouchSession0'].location.replace('/Reserved.ReportViewerWebControl.axd?...TimerMethod=KeepAliveMethodReportViewer1TouchSession0....", -1703027296); 
} 

(私は余計な情報を削除することによって、それが読みやすくotの試してみました)

<html><body><script type="text/javascript">parent.KeepAliveMethodReportViewer1TouchSession0();</script 

:Reserved.ReportViewerWebControl.axdは、それが次のHTMLを返すGET要求を行うと呼ばれています

これは再帰関数になり、KeepAliveMethodReportViewer1TouchSession0は負のタイムアウト値でタイムアウト値を設定するため、Firefoxでは直ちに約10秒後に呼び出されます。Firebugは1分で150個のGET要求をログに記録します。これにより、FirefoxのStopボタンとカーソルが狂ったように点滅します。

誰かがキープアライブ要求のタイムアウトを調整する方法を知っていれば、それはまあまあです。私はあなたの助けに感謝します。

答えて

0

わかりませんが、このコントロールがTimerMethodパラメータを使用してクロスサイトスクリプティングの脆弱性を公開していることは注目に値します。問題については多すぎる文書ではありませんが、注意してください。 :)

1

私は同様の問題を抱えていました。セッションタイムアウトを約10000にすると、firefoxとchromeの点滅が止まりました。理由はわかりませんが、その問題は修正されました。私はASP.Netコミュニティの初心者です。そのため、アプリケーションがIIS上にある場合(開発サーバーに問題はありません)、セッションタイムアウト(以前は120000に保ちました)とreportviewerの点滅の関係を知りたいと思います。

1

私はこのスレッドが歳のカップルですけど、今日は同様の問題を抱えていたし、ここに解決策を見つけた:それはReportViewerから継承したカスタムコントロールを作成し、ハックのビットが

http://www.google.com/support/forum/p/Chrome/thread?tid=331a0a766d6da660&hl=en

ですRender()メソッドをオーバーライドして問題のJavaScriptを置き換えます。

関連する問題