[英]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.