一个简单的问题,但我宁愿问,因为我有两次问题。
我正在尝试从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被识别但我得到运行时错误。
答案 0 :(得分:0)
您需要检查HttpContext.Current是否为null。如果它为null,则不在正确的上下文中进行检索。
如果您可以修改该函数,我会将HttpContext.Current作为变量传递或将主机作为变量传递。