2017-06-12 6 views
0

Wir haben eine Anwendung, die eine Funktion nach dem Intervall von 5 Minuten (unter Verwendung von timer) von Glabal.asax ruftUnexpected Thread in Funktion

Die Funktion mit Dritten in Verbindung steht, erhält Daten und sendet sie an eine andere Anwendung, die Aktualisierungen die Datenbank.

Nach dem vierten oder fünften Mal wird die Funktion aufgerufen, eine ThreadAbortException wird aufgerufen, während Daten von einer Drittanbieteranwendung empfangen werden. Dies stoppt die gesamte Anwendung.

Wir verwenden Response.End, Response.Redirect oder Server.Transfer nicht, die die Funktionen sind, die ThreadAbortException verursachen.

Anwendungspool möglicherweise neu gestartet/recycelt. Aber was kann dafür verantwortlich sein? Ich habe das Timeout auf 0 gesetzt, was bedeutet, dass es nie einen Timeout gibt. Aber ich bekomme immer noch die Ausnahme.

Kann jemand etwas vorschlagen?

Danke.

+0

Es klingt wie Sie versuchen, [eine Hintergrundaufgabe in asp.net laufen] (https: //www.hanselman. com/blog/HowToRunBackgroundTasksInASPNET.aspx) –

+0

Nicht, dass ich mir dessen bewusst bin. Wie finde ich das heraus? Und was ist die Lösung? – Dhanashree

+0

Versuchen Sie, regelmäßig Code auszuführen, der nicht mit einer tatsächlichen Anfrage verknüpft ist? Wenn ja, wäre das eine Hintergrundaufgabe. Ich habe Sie mit einem Blog-Post verknüpft, der verschiedene Möglichkeiten dafür beschreibt. Die Verwendung einer Form von "Timer" (die Sie verwenden, ist unklar) ist nicht auf der Liste, aus verschiedenen Gründen auch in diesem Beitrag diskutiert. –

Antwort

0

Ich verwendete ein WebRequest-Objekt, um eine Anfrage an die dritte Partei zu stellen. Die Lösung für das Problem besteht darin, die Zeitüberschreitung der Anfrage zu ändern. Ich habe es auf unendlich geändert.

WebRequest request = WebRequest.Create(serviceUrl); 
request.Method = "POST"; 
request.Timeout = System.Threading.Timeout.Infinite; 

Ich hoffe, das jemand, der ähnliche Situation trifft hilft. Mir wurde jedoch von meinem Kollegen geholfen.

Bearbeiten - ich einen interessanten Artikel auf MSDN auch gefunden - Understanding WebRequest Problems and Exceptions