Frage

Ich mache eine Anfrage von einem UpdatePanel Das dauert mehr als 90 Sekunden. Ich erhalte diesen Zeitüberschreitungsfehler:

Microsoft JScript -Laufzeitfehler:

Weiß jemand, ob es eine Möglichkeit gibt, die Zeit zu erhöhen, bevor die Anrufzeiten ausgerichtet sind?

War es hilfreich?

Lösung

Auf dem Skriptmanager befindet sich eine Eigenschaft:

AsyncPostBackTimeout="300"

Andere Tipps

In meinem Fall wurde das SkriptManager -Objekt in einer Mastersteindatei erstellt, die dann mit den Inhaltsseitendateien freigegeben wurde. Um die Eigenschaft scriptManager.asyncPostbackTimeout in der Inhaltsseite zu ändern, musste ich in der ASPX.CS -Datei der Inhaltsseite auf das Objekt zugreifen:

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

Dies hat den Trick gemacht (im Grunde nur ignorierte alle Auszeiten):

<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> 

Bitte befolgen Sie die folgenden Schritte:

Schritt 1: in web.config, einstellen httpRuntime maxRequestLength="1024000" executionTimeout="999999"

Schritt 2: Fügen Sie die folgende Einstellung zum Skriptmanager Ihrer Webseite hinzu: AsyncPostBackTimeout ="360000"

Dies wird Ihr Problem lösen.

Dies kann konfigurierbar sein, indem das ASP -Skript -Timeout in IIS geändert wird.

Es befindet sich in den Eigenschaften Ihrer Website, Ihrer virtuellen Verzeichnis, der Schaltfläche Konfiguration und dann auf der Registerkarte Optionen.

Oder setzen Sie es durch Einstellen der Eigenschaft server.scripttimeout.

Nun, ich nehme an, das würde funktionieren, wenn Sie nur die Anfrage mit dem Potenzial haben möchten, das es nie vollständig ausgeführt hat ...

Fügen Sie dem ScriptManager -Tag eine asyncPostbackTimeout -Eigenschaft hinzu, um Ihr Standard -Timeout von 90 Sekunden auf etwas Vernünftigeres für Ihre Anwendung zu ändern.

Schauen Sie sich außerdem an, dass Sie den Webdienst ändern, der den Anruf erhält, um schneller zu bewegen. 90 Sekunden können auch in der Internetzeit unendlich sein.

Das Problem, mit dem Sie konfrontiert sind, ist, wenn Ihre Anwendung eine Zeitüberschreitung auf einer SQL -Datenbankabfrage betreibt. Es dauert mehr Zeit als die Standardeinstellung, um die Ausgabe zurückzugeben. Sie müssen also die Immobilie von ConnectionTimeout erhöhen.

Sie können es auf verschiedene Arten tun:

  1. Eine Verbindungszeichenfolge hat a ConnectionTimeout Eigentum. Es handelt sich um eine Eigenschaft, die die maximale Anzahl von Sekunden bestimmt, die Ihr Code auf eine Verbindung der Datenbank wartet, die geöffnet werden soll. Sie können die Verbindungszeitüberschreitungsabschnitt im Abschnitt "Verbindungszeichenfolge in" festlegen 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. Du kannst Geben AsyncPostBackTimeout="6000" in .aspx Seite

    <asp:ToolkitScriptManager runat="server" AsyncPostBackTimeOut="6000">
    </asp:ToolkitScriptManager>
    
  3. Sie können eine Zeitüberschreitung einstellen SqlCommand, wo Sie die gespeicherte Prozedur in .cs -Datei aufrufen.

    command.CommandTimeout = 30*1000;
    

Ich hoffe, Sie haben eine Lösung!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top