簡體   English   中英

MVC3 C#中的物理應用程序路徑用於計划任務

[英]Physical Application Path in MVC3 C# for Scheduled task

我正在開發基於ASP.NET MVC3 C#的電子商務網站。 我使用System.Threading實現了計划任務,該計划每隔一分鍾運行一次。 此計划任務調用簡單函數,它返回產品並插入另一個表中以滿足某些要求。

我的問題是:
有一個字段說ProductImageURL,所有圖像都存儲在內容/拇指中。 當我試圖使用HttpContext.Request.PhysicalApplicationPath獲取此路徑時,它會拋出這樣的錯誤

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

發生此錯誤是因為調度程序任務的功能是通過http請求產品圖像但是原始請求是非http ...只是簡單的函數調用。 如果我們手動鍵入物理路徑,那么該函數似乎正常工作。

那么我該如何解決呢? 或者還有其他方法可以解決這類問題嗎?

這不起作用,因為您正在調度另一個線程來處理該任務。 此時,您無法再訪問HttpContext ....因為您在另一個線程上。 新線程不知道HttpContext或它來自何處。

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

另一種選擇是使用HttpContext.Request.PhysicalApplicationPath作為函數的字符串參數傳入當前目錄。 實際上取決於您的代碼如何設置以生成后台線程並調用該函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM