在我的ASP.NET應用程序中,我有一個腳本,我會定期自動調用以更新數據庫。由於這段代碼中的一個錯誤,它的幾次調用都進入了一個無限循環。殺死ASP.NET線程
我在一個共享主機,所以我不能只是重新啓動IIS。我曾嘗試從主機的管理網站「停止」該網站,但沒有任何效果。
由於它們現在運行了很長時間,我假設沒有配置超時。所以,我想殺死那些「流程」(我認爲它實際上只是線程),有沒有辦法做到這一點,而不與我的託管公司聯繫?
在我的ASP.NET應用程序中,我有一個腳本,我會定期自動調用以更新數據庫。由於這段代碼中的一個錯誤,它的幾次調用都進入了一個無限循環。殺死ASP.NET線程
我在一個共享主機,所以我不能只是重新啓動IIS。我曾嘗試從主機的管理網站「停止」該網站,但沒有任何效果。
由於它們現在運行了很長時間,我假設沒有配置超時。所以,我想殺死那些「流程」(我認爲它實際上只是線程),有沒有辦法做到這一點,而不與我的託管公司聯繫?
我從我想殺死的線程中記錄一些信息到一個文件。代碼能夠創建該文件,如果它不存在,但它不適用於它所在的文件夾。
因此,我暫時將文件夾重命名爲日誌,線程似乎已停止。
在這一點上,我認爲唯一的辦法是重新啓動應用程序池。如果你有權訪問這個。 –
你提到他們仍在運行,所以我認爲你知道這一點,因爲他們仍然在進行數據庫調用?它取決於代碼,但是您可能會通過終止它們與數據庫的連接而導致異常,從而導致線程終止? (完全取決於你的異常處理和當然連接的維護方式)。如果線程打開和關閉連接太快而無法終止它們,請嘗試鎖定它們需要的表並強制執行Sql Timeout?即BEGIN TRAN,SELECT * FROM TableThreadsAreUsing(記住這會鎖定每個人) – Smudge202
無限循環?不,託管公司將禁止你佔用CPU時間 – user774411