application_start内で宣言されているスレッドから呼び出す必要があるglobal.asaxファイルに関数を書いています。デバッグ モードでは正常に動作しますが、ホストされているときにコールバック関数を呼び出しません。
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
writeLog("Application Initialized")
writeLog("Thread is starting....")
Dim T As New Threading.Thread(AddressOf UpdateQueue)
T.Start()
writeLog("Thread Started....")
End Sub
Sub UpdateQueue()
writeLog("UpdateQueue entry")
While Q.Count > 0
' Some logic
End While
writeLog("UpdateQueue going for idle state")
Threading.Thread.Sleep(5000)
UpdateQueue()
End Sub
Thread Starting Thread Started のようなログ ファイルが表示されます
しかし、「UpdateQue」関数に出力される他のメッセージはありません。他の方法も試しました。1. タイマーの使用: 上記と同じ問題 2. Thread.Timers の使用: 上記と同じ問題 3. application_start から直接 UpdateQueue 関数を呼び出します: UpdateQue 関数に入り、ログ エントリに書き込みます。
サーバーの問題の理由を理解できません。パブリック IP (ホスティング プロバイダーからではなく) で IIS 7 を使用しているため、必要に応じて変更を加えることができます。