2012-05-24 37 views
0

嗯......我感覺絕對是愚蠢的。原因如下:文件I/O在ASP.Net中不起作用C#工作線程

我一直在使用2年前寫的一些庫函數。埋了幾個層次深,我使用這些功能,以幫助建立我想要的路徑:

System.Web.HttpContext.Current.Request.ApplicationPath System.Web.HttpContext.Current.Server.MapPath

如果不使用這個的:

HttpRuntime.AppDomainAppPath

System.Web.HttpContext.Current將是肯定無效,因爲沒有HTTP上下文。當然,沒有任何例外,因爲我陷害並忽略它們。

你不知道我盯着我的項目有多少小時想知道這是什麼錯誤!

請原諒我浪費我們的時間。這太尷尬了!

+2

這可能有助於發佈一些代碼。 –

+0

你確定它沒有拋出異常嗎?你使用哪個線程庫? – tzerb

回答

3

不鼓勵在ASP.NET應用程序中產生線程。我知道它在技術上可以完成,但是有很多問題需要解決。建議的最佳做法是創建一個Windows服務來運行後臺任務。然後,您的ASP.NET應用程序可以向服務發出請求,服務會在後臺處理它們。

更新與引用

從評論上multi threading on asp.net

一個關於ASP.NET網站使用後臺處理預警。 IIS可以在任何特定時刻回收應用程序,並在執行此操作時終止任何正在運行的後臺線程。所以不能保證你的線程池線程能夠成功運行。如果這是個問題,最好使用Windows服務來進行後臺處理。

此外,SO用戶Mr. Disappointment進入詳細here,說:

的Windows服務被設計爲長時間運行,如果出現問題你通常得到更多的擔心不是你的個人服務。

+0

你有參考嗎? – tzerb

+0

@tzerb _如何在ASP.NET 4中執行長時間運行的任務?_ - 您不需要。如果您需要更多的信息,只需瞭解應用程序池的生命週期。順便說一下,很好的參考,查理。 ;) –

+0

請參閱我編輯的原文。 – Escovado