2012-08-01 70 views
0

我正在致力於基於ASP.NET MVC3 C#的電子商務網站。我已經使用每分鐘運行的System.Threading實現計劃任務。此計劃任務調用簡單函數,並返回產品並插入另一個表中以滿足某些要求。MVC3中的物理應用程序路徑C#for Scheduled任務

我的問題是:
有一個字段說ProductImageURL和所有圖像存儲在內容/大拇指。 當我試圖讓使用HttpContext.Request.PhysicalApplicationPath這條道路,它拋出一個錯誤,這樣

The method or operation is not implemented. at System.Web.HttpRequestBase.get_PhysicalApplicationPath()

時發生此錯誤的原因是調度任務的功能是通過HTTP請求的產品形象但發起請求是非http ...只是簡單的函數調用。如果我們手動輸入物理路徑,那麼該功能似乎可以正常工作。

那麼我該如何解決它?或者還有其他解決這類問題的方法嗎?

回答

2

這不起作用,因爲您正在調度另一個線程來處理任務。在那時,你不再有權訪問HttpContext ....因爲你在另一個線程上。新線程不知道HttpContext或它來自哪裏。

您可能需要使用Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);或某些等價物才能獲取應用程序的路徑。

另一種選擇是將當前目錄中使用HttpContext.Request.PhysicalApplicationPath作爲字符串參數傳遞給您的函數。真的取決於你的代碼如何設置產生後臺線程並調用函數。

相關問題