C# 无法识别Request.QueryString,命名空间中包含System.Web
一个简单的问题,但我宁愿问,因为我有两次问题 我正在尝试从ASP.NET项目中的url检索主机名。代码实际上不在网页中,而是在类(域的一部分)中。标题中包含System.Web。当我尝试使用Request.QueryString时,无法识别它。更糟糕的是,如果我尝试HttpContext.Current,我会得到这个错误C# 无法识别Request.QueryString,命名空间中包含System.Web,c#,asp.net,.net,query-string,system.web,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 MyNight
'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被识别,但我得到了运行时错误。您需要检查HttpContext.Current是否为空。如果为null,则其不在要检索的正确上下文中
如果您可以修改该函数,我会将HttpContext.Current作为变量传递,或者将主机作为变量传递。从何处调用此方法?它是否与HTTP请求在同一个线程上执行?根本不确定该线程。我有4个应用在一个解决方案,如果这有帮助。它是web应用程序,而不是线程化应用程序AFAIK。请尝试HttpContext.Current.Request.QueryString[“HTTP_HOST”]也许您可以发布调用此方法的代码?听起来你没有在正确的范围内使用它。我可以逐步解决它。我想ExecuteJob是自动调用的。它是Quartz.NET的一部分。这是一个好主意,但它是一个大代码,我自己不想做这个更改。是,
HttpContext.Current
在我的代码中返回null。