Σε μία asp.net web application θέλω να τρέξω μία function η οποία θέλει αρκετό χρόνο για να εκτελεστεί. Αποφάσισα λοιπόν να την εκτελέσω σε ένα ξεχωριστό thread. Ο κώδικας είναι ο εξής:
Private Sub WriteToLog(ByVal SomeString As String)
Dim myLog As New IO.StreamWriter(LogPath, True)
myLog.WriteLine(SomeString)
myLog.Close()
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
WriteToLog("I am not the thread")
Dim myThread As New Thread(AddressOf DoStuff)
myThread.Start()
End Sub
Private Sub DoStuff()
WriteToLog("I am the thread")
End Sub
Τοπικά όλα τρέχουν όμορφα, αλλά όταν έκανα κάποιες δοκιμές στον production server μας είδα ότι δεν φαίνεται να τρέχει τίποτα. Δοκίμασα να απλοποιήσω την DoStuff() βάζοντας να κάνει κάτι απλό, π.χ. να γράψει σε ένα log file αλλά από ότι φαίνεται δεν τρέχει ούτε αυτό. Ο production server είναι σε medium trust, κ αυτό είναι η μόνη διαφορά που μπορώ να σκεφτώ.
Καμιά ιδέα για το τι μπορεί να φταίει;
Τάσος Καραγιάννης
Baby debugging steps...