5

我想使用 Server.MapPath() 方法将我创建的虚拟目录映射到其物理路径。

问题是 .net 环境无法识别 Server.MapPath()。

Google 告诉我,我应该使用 System.Web 来使用 HttpContext.Current.Server,但尽管我使用 System.Web,但 HttpContext 无法识别。(而且我已经检查过 - HttpContext 是 System.Web 的类之一)

帮助?

4

3 回答 3

3

确保您已在项目中包含 System.Web 参考 执行以下操作(在 Visual Studio IDE 中):

  1. 右键单击项目节点(解决方案资源管理器窗口)
  2. 在上下文菜单上,单击添加参考
  3. 在 .NET 选项卡列表项上选择 System.Web。
  4. 点击确定按钮

Server.MapPath 现在应该可用。

于 2009-10-05T09:20:42.923 回答
3

如果您有一个 Web 应用程序,您应该自动拥有对 的引用System.Web.dll,并且您应该可以访问System.Web.HttpContext该类。检查您是否不小心删除了引用。您需要一个using System.Web;语句来访问HttpContext该类而不指定完整的命名空间。

如果您没有 Web 应用程序,则必须添加参考System.Web.dll才能访问该HttpContext课程,但这对您没有帮助。由于您不在 Web 应用程序中,因此没有 HTTP 上下文,也没有 Web 根文件夹,因此您不能使用 MapPath 方法。

于 2009-10-05T09:22:06.853 回答
1

这里同样的问题。在 ASP.net 4.0 Web 应用程序中,在 .ashx 处理程序中,using System.Web顶部带有 a。我无法使用Server.MapPath()我所说的要使用的书,或者System.Web.HttpServerUtility.MapPath()Google 和 MSDN 不断出现的内容。HttpServerUtility.MapPath()如上所述,我也无法使用。

但是,此处的其他答案之一促使我尝试context.Server.MapPath()在我的ProcessRequest(HttpContext context)方法中确实有效。

于 2011-06-12T19:20:58.603 回答