2009-07-27 2 views
0

Ich bin auf IIS7Aufruf void Methoden in IIS 7 und nicht warten auf sie zurück

Ich habe eine Schaltfläche auf einer Seite.

Wenn ich darauf klicke, wird ein neuer Thread gestartet, der eine void-Methode aufruft, die 20 bis 30 Minuten dauert.

Das Problem ist, dass die aufgerufene void-Methode nicht mehr ausgeführt wird, sobald die Kontrolle an den Browser zurückgegeben wird. (Zumindest scheint es)

Sollte es sich so verhalten oder sollte die Kontrolle an den Browser zurückgegeben werden und fortfahren? Gibt es eine andere Möglichkeit, eine Methode aufzurufen und nicht zu warten, bis sie abgeschlossen ist?

+0

Warum sagen Sie, dass es scheint zu laufen zu stoppen? Was hast du beobachtet? Was versuchst du im Thread? – Guffa

+0

Es scheint, dass der Thread, den ich gestartet habe, gerade endet, sobald die Kontrolle auf die Seite zurückkehrt. – Matt

+0

Ich versuche etwas zu tun, das eine lange Zeit auf dem Server dauert (Build a Index) – Matt

Antwort

1

Ich nehme an, dass Ihre Methode durch Script Timeout gestoppt wird. Es gibt verschiedene Möglichkeiten, das Problem zu beheben:

  1. Script-Timeout erhöhen. Ich würde dies nicht empfehlen, da die lange Operation den Anwendungspool-Thread sperrt und andere Anfragen nicht verarbeiten kann. Aber Sie können versuchen :) http://www.devx.com/vb2themax/Tip/18803
  2. Verwenden von asynchronen Methoden. http://msdn.microsoft.com/en-us/magazine/cc163725.aspx
  3. Workflows http://msdn.microsoft.com/en-us/magazine/2009.01.longrunwf.aspx
  4. Führen Sie Ihren Prozess mit Ajax-Request an den Webservice und Abfrage der Dienst den Ausführungsstatus zu überprüfen.