1

サイトの特定のページへのリンクを含むメールを送信する静的クラスがあります。そのリンクは、次のコードで動的に生成されます。

UrlHelper urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
string url = urlHelper.Action("Details", "Product", new { id = ticketId }, "http");

問題は、作成日と現在の日付を定期的に比較して、それらのメールを自動的に送信するサービスもあるということです。もちろん、コードはクラッシュし、HttpContext.Currentnull と表示されます (リクエストではないため)。

私はそのようないくつかのことを試しました:

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;
    }
}

しかし、UrlHelper.Action で 2 回目の RequestContext が必要になると、Null Reference Exception と言ってクラッシュします。

サービスを介してメールメソッドを呼び出すときに、UrlHelper または HttpContext を保存/記憶/渡してアクセスできませんでした。

4

1 に答える 1