如何正确实例化HttpContext对象?

时间:2013-10-07 14:27:56

标签: c# asp.net nullreferenceexception

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

string currentURL = HttpContext.Current.Request.Url.ToString();

但是,运行代码后出现错误:Object reference not set to an instance of an object.

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

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

1 个答案:

答案 0 :(得分:9)

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

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

var request    = HttpContext.Current.Request;
var response   = HttpContext.Current.Response;
var newContext = new HttpContext(request, response);