我有一个静态类,它发送带有指向我网站某些页面的链接的电子邮件。该链接正在使用此代码动态生成:
UrlHelper urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
string url = urlHelper.Action("Details", "Product", new { id = ticketId }, "http");
问题是我现在还有一项服务,可以定期将创建日期与当前日期进行比较并自动发送这些邮件。代码当然会崩溃并说HttpContext.Current
为空(因为它不是请求)。
我尝试了一些类似的事情:
private static System.Web.Routing.RequestContext requestContext;
private static System.Web.Routing.RequestContext RequestContext {
get
{
if(requestContext == null)
requestContext = HttpContext.Current.Request.RequestContext;
return requestContext;
}
}
但是当我第二次需要 RequestContext 时 UrlHelper.Action 崩溃说空引用异常。
通过我的服务调用邮件方法时,我无法以某种方式保存/记住/传递 UrlHelper 或 HttpContext 以进行访问。