计划任务的MVC3 C#中的物理应用程序路径

计划任务的MVC3 C#中的物理应用程序路径,c#,asp.net-mvc-3,httpwebrequest,scheduled-tasks,C#,Asp.net Mvc 3,Httpwebrequest,Scheduled Tasks,我正在开发一个基于ASP.NET MVC3 C#的电子商务网站。我已经使用System.Threading实现了调度任务,它每分钟运行一次。这个调度任务调用简单函数,它返回产品并插入到另一个表中以满足某些需求 我的问题是: 有一个字段称为ProductImageURL,所有图像都存储在content/thumbs中。 当我尝试使用HttpContext.Request.PhysicalApplicationPath获取此路径时,它会抛出如下错误 未实现该方法或操作。 在System.Web.Ht

我正在开发一个基于ASP.NET MVC3 C#的电子商务网站。我已经使用System.Threading实现了调度任务,它每分钟运行一次。这个调度任务调用简单函数,它返回产品并插入到另一个表中以满足某些需求

我的问题是:
有一个字段称为ProductImageURL,所有图像都存储在content/thumbs中。 当我尝试使用HttpContext.Request.PhysicalApplicationPath获取此路径时,它会抛出如下错误

未实现该方法或操作。
在System.Web.HttpRequestBase.get_PhysicalApplicationPath()上

发生此错误的原因是调度程序任务的一个功能正在通过http请求产品映像,但原始请求不是http。。。只是简单的函数调用。如果我们手动输入物理路径,那么该功能似乎工作正常


那我怎么解决呢?或者是否有其他方法来解决此类问题?

这不起作用,因为您正在调度另一个线程来处理该任务。此时,您不再有权访问HttpContext…因为您在另一个线程上。新线程不知道HttpContext或者它来自哪里

您可能需要使用
Path.GetDirectoryName(Assembly.getExecutionGassembly().Location)
或其他等效工具,以获取应用程序的路径

另一个选项是使用
HttpContext.Request.PhysicalApplicationPath
将当前目录作为字符串参数传递给函数。实际上,这取决于如何设置代码以生成后台线程并调用函数