2009-06-29 2 views
5

gibt es eine Standard-Timeout gesetzt, wenn ich eine PageMethod von einem Javascript ohne explizite Angabe der Timeout aufrufen, wenn ja, was ist das?PageMethod default timeout

Dank

Antwort

6

Der Standard XmlHttpRequest Objekt hat keinen Einbau-Timeout-Mechanismus. Ajax-Anfragen laufen auf unbestimmte Zeit, da es keinen Standard-Weg zum Timeout gibt. Es gibt Möglichkeiten, in denen you can get around this ich allerdings annehmen würde, was ASP.NET in ihrem Framework macht.

IE8 ist der einzige Browser mit einer built-in timeout property, also nehme ich an, dass ihr Ajax-Framework damit übereinstimmen würde. In diesem Fall ist das Zeitlimit standardmäßig unbestimmt.

ASP.NET hat auch eine AsyncTimeout Eigenschaft für asynchrone Seitentasks, daher ist es möglich, dass das Framework (serverseitig) in 45 Sekunden eine Zeitüberschreitung hat. Dies ist der Standardwert für asynchrone Aufgaben in ASP.NET-Seiten.

Es scheint keine Standard-Timeout von was ich finden konnte. Wenn ich Sie wäre, würde ich mich nicht auf die Standard-Timeout-Länge verlassen. Sie sollten Ihre eigene Länge angeben, wenn Sie Timeouts befürchten. Timeouts können standardmäßig unbegrenzt lang sein. Benutzer werden nicht unbegrenzt lange warten, daher ist es besser, das Zeitlimit als die maximale Wartezeit zu definieren, die ein Benutzer bewältigen sollte (abhängig vom Kontext).

UPDATE
ich eine Testseite mit einer Seite-Methode erstellt, die 65 Minuten dauern wird geladen (Thread.Sleep mit()). Der Aufruf der PageMethode hat die vollen 65 Minuten abgewartet, so dass meine Annahme korrekt zu sein scheint. Seitenmethoden haben standardmäßig keine Timeout, oder wenn sie es tun, ist die Zeitüberschreitung über 1 Stunde. Vergessen Sie nicht, dass lokale Entwicklungsmaschinen effektiv ein unbegrenztes Server-Timeout haben, so dass ASP.NET ein Skript unbegrenzt laufen lässt. Das Ausführungszeitlimit für ASP.NET für Produktionskonfigurationen ist standardmäßig between 90 and 110 secionts seconds, abhängig von der .NET-Version, die Sie ausführen.

+0

Ich wünschte, ich könnte das höher wählen! –

+0

Welche Version .NET verwendeten Sie? 3.5? – mlhDev

+0

@Matthew Der Standardwert von AsyncTimeout hat sich seit 2.0 nicht geändert. Alles bis einschließlich 4.0 verwendet die gleiche Standardzeit für die Zeitüberschreitung. –