【问题标题】:Physical Application Path in MVC3 C# for Scheduled taskMVC3 C# 中用于计划任务的物理应用程序路径
【发布时间】:2012-07-30 04:27:41
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c# asp.net-mvc-3 httpwebrequest scheduled-tasks


    【解决方案1】:

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

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

    另一个选项是使用HttpContext.Request.PhysicalApplicationPath 作为函数的字符串参数传入当前目录。真的取决于你的代码是如何设置生成后台线程并调用函数的。

    【讨论】:

      猜你喜欢
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 2011-07-23
      相关资源
      最近更新 更多