web-dev-qa-db-ja.com

ASP.NET UpdatePanelのタイムアウト

90秒以上かかるUpdatePanelからリクエストを送信しています。私はこのタイムアウトエラーが発生しています:

Microsoft JScriptランタイムエラー:Sys.WebForms.PageRequestManagerTimeoutException:サーバーリクエストがタイムアウトしました。

通話がタイムアウトするまでの時間を増やす方法があるかどうか誰もが知っていますか?

51
ctrlShiftBryan

ScriptManagerにはプロパティがあります。

AsyncPostBackTimeout="300"
87
CodeRedick

私の場合、ScriptManagerオブジェクトはマスターページファイルに作成され、コンテンツページファイルと共有されました。したがって、コンテンツページのScriptManager.AsyncPostBackTimeoutプロパティを変更するには、コンテンツページのaspx.csファイル内のオブジェクトにアクセスする必要がありました。

protected void Page_Load(object sender, EventArgs e)
{
     . . . 
     ScriptManager _scriptMan = ScriptManager.GetCurrent(this);
     _scriptMan.AsyncPostBackTimeout = 36000;
}
43
narayan

これはトリックを行いました(基本的にすべてのタイムアウトを無視するだけです):

<script type="text/javascript"> 
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) { 
            if (args.get_error() && args.get_error().name === 'Sys.WebForms.PageRequestManagerTimeoutException') { 
                            args.set_errorHandled(true); 
            } 
        }); 
    </script> 
11
ctrlShiftBryan

以下の手順に従ってください。

ステップ1:web.configで、httpRuntime maxRequestLength="1024000" executionTimeout="999999"

ステップ2:次の設定をWebページのScriptManagerに追加します:AsyncPostBackTimeout ="360000"

これで問題が解決します。

7
rajalingam

これは、IISでASPスクリプトタイムアウトを変更することで構成可能です。

Webサイトのプロパティ、仮想ディレクトリ、構成ボタン、オプションタブにあります。

または、Server.ScriptTimeoutプロパティを設定して設定します。

2
Bravax

まあ、リクエストが完全に実行されない可能性があるだけで破棄したい場合はうまくいくと思います...

AsyncPostBackTimeOutプロパティをScriptManagerタグに追加して、デフォルトのタイムアウトを90秒からアプリケーションにとってより適切な値に変更します。

さらに、コールを受信するWebサービスを変更して、より速く移動するようにします。インターネット時間では90秒も無限になります。

1
NotMe

直面している問題は、アプリケーションがSQLデータベースクエリでタイムアウトになったときです。出力を返すには、デフォルトよりも時間がかかります。そのため、ConnectionTimeoutプロパティを増やす必要があります。

それにはいくつかの方法があります。

  1. 接続文字列にはConnectionTimeoutプロパティがあります。これは、データベースの接続が開かれるまでコードが待機する最大秒数を決定するプロパティです。 web.configの接続文字列セクションで接続タイムアウトを設定できます。

    <connectionstrings>
        <add name="ConnectionString" 
             connectionstring="Database=UKTST1;Server=BRESAWN;uid="      system.data.sqlclient="/><br mode=" hold=" /><br mode=" html="> <asp:ToolkitScriptManager runat=" server=" AsyncPostBackTimeOut=" 6000="><br mode=">
        </add>
    </connectionstrings>
    
  2. AsyncPostBackTimeout="6000".aspxページに入れることができます

    <asp:ToolkitScriptManager runat="server" AsyncPostBackTimeOut="6000">
    </asp:ToolkitScriptManager>
    
  3. .csファイルのストアドプロシージャを呼び出すSqlCommandでタイムアウトを設定できます。

    command.CommandTimeout = 30*1000;
    

あなたが解決策を持っていることを願っています!

0
Pradeep atkari