Request.QueryString无法识别,System.Web包含在命名空间中

时间:2013-10-01 18:37:32

标签: c# asp.net .net query-string system.web

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

我正在尝试从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被识别但我得到运行时错误。

1 个答案:

答案 0 :(得分:0)

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

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