0

我正在开发基于 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 ......只是简单的函数调用。如果我们手动输入物理路径,那么该功能似乎可以正常工作。

那么我该如何解决呢?或者有没有其他方法可以解决这类问题?

4

1 回答 1

2

这不起作用,因为您正在分派另一个线程来处理任务。那时,您不再有权访问 HttpContext....因为您在另一个线程上。新线程不知道 HttpContext 或它来自哪里。

您可能需要使用Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);或类似的工具来获取应用程序的路径。

另一种选择是将当前目录HttpContext.Request.PhysicalApplicationPath作为字符串参数传递给您的函数。真的取决于您的代码如何设置以生成后台线程并调用该函数。

于 2012-08-02T04:24:23.430 回答