0

一个简单的问题,但我宁愿问,因为我有两次问题。

我正在尝试从 ASP.NET 项目中的 url 检索主机名。代码实际上不在网页中,而是在一个类(域的一部分)中。System.Web 包含在标题中。当我尝试使用 Request.QueryString 时,它无法识别。更糟糕的是,如果我尝试使用 HttpContext.Current,我会收到此错误

'System.Web.HttpContext.Current' is null

这是我的代码

using System.Web;

public class MyNightlyJob : AbstractJob
{
    public override void ExecuteJob(IJobExecutionContext context)
    {
          HttpContext.Current.Request.ServerVariables["HTTP_HOST"]; // does not work
          Request.ServerVariables["HTTP_HOST"]; // this does not work also
    }
}

我错过了什么?请注意,我的问题实际上是关于 Request.ServerVariables 但如果一个有效,另一个也将有效。

请注意,代码中根本无法识别 Request.ServerVariable。HttpContext.Current 被识别,但我得到运行时错误。

4

1 回答 1

0

您需要检查 HttpContext.Current 是否为空。如果它为空,则它不在要检索的正确上下文中。

如果您可以修改该函数,我会将 HttpContext.Current 作为变量传递或将主机作为变量传递。

于 2013-10-02T21:45:31.950 回答