如何正确实例化HttpContext对象?

Tes*_*stK 6 c# asp.net nullreferenceexception

我正在尝试创建一个简单的代码来检索当前URL的字符串,如下所示:

string currentURL = HttpContext.Current.Request.Url.ToString();
Run Code Online (Sandbox Code Playgroud)

但是,我在运行代码时遇到错误: Object reference not set to an instance of an object.

我假设我必须创建一个HttpContext的实例.HttpContext的参数是HttpContext(HttpRequest request, HttpResponse response)或者HttpContext(HttpWorkerRequest wr).

是否有文档详细说明如何使用这些参数?我对C#很新,所以我不完全确定如何正确地实例化这个对象,并且没有找到任何有用的资源(包括MS库).

Mar*_*ade 9

HttpContext对象被实例化,每个请求线程一次,由ASP.NET基础设施.您必须在Web服务器(例如,IIS)上运行ASP.NET才能使用它.它并不意味着在用户代码中初始化.您已经通过HttpContext.Current 静态属性访问该实例.如果您没有运行ASP.NET ,它将为null.

但是,如果您真的想要,可以根据现有的请求和响应实例化一个HttpContext:

var request    = HttpContext.Current.Request;
var response   = HttpContext.Current.Response;
var newContext = new HttpContext(request, response);
Run Code Online (Sandbox Code Playgroud)