6

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

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 库)。

4

1 回答 1

10

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

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

var request    = HttpContext.Current.Request;
var response   = HttpContext.Current.Response;
var newContext = new HttpContext(request, response);
于 2013-10-07T14:32:14.823 回答