6

我们有一个用 ASP.NET 3.5 编写的 Web 应用程序。在其中,我们访问代码隐藏中的文件。(普通的 C# 文件访问,在页面生命周期期间在服务器上完成,这与 URL 或 Web 浏览器无关)。

在我们的生产系统上,我们在 web.config 中指定相关文件的完整路径。我们希望能够在版本控制中包含项目中文件的本地副本,然后使用版本控制的 web.config 中的相对路径指向它,以便签出副本该应用程序可以在 Visual Studio 的调试器中运行,而无需进行任何配置。

问题是当 Web 应用程序在调试模式下运行时,它的工作目录既不是项目目录,也不是解决方案目录。在 Windows 或控制台应用程序中,在项目的属性页面中,我可以设置工作目录。但是在网络应用程序中我不能。

关于我如何设法完成这项工作的任何想法?

4

3 回答 3

14

获取应用程序根目录的路径:

//equivalent to Server.MapPath("/"); if at domain root, e.g Http://mysite.com/
string path = Server.MapPath("~");

这个答案列出了一些Server.MapPath()可能对您有用的不同常见用途。

于 2010-02-03T23:51:17.070 回答
4

在后面的代码中: HttpContext.Current.Server.MapPath("~")

于 2012-05-15T07:21:24.350 回答
3

采用:

Server.MapPath("~");
于 2010-02-03T23:52:10.607 回答