2010-02-03 48 views
6

我們有一個用ASP.NET 3.5編寫的Web應用程序。其中,我們在代碼隱藏中訪問文件。 (普通的C#文件訪問,在頁面生命週期中在服務器上完成,這與URL或Web瀏覽器無關)。ASP.NET中的工作文件夾

在我們的生產系統上,我們在web.config中指定相關文件的完整路徑。我們希望能夠在版本控制中將文件的本地副本包含在項目中,然後使用版本控制的web.config中的相對路徑指向它,以便籤出一份該應用程序可以在Visual Studio的調試器中運行,而無需進行任何配置。

問題是,當Web應用程序在調試模式下運行時,其工作目錄既不是項目也不是解決方案目錄。在Windows或控制檯應用程序中,在項目的屬性頁面中,我可以設置工作目錄。但在一個Web應用程序中,我不能。

關於我如何能夠做到這一點的任何想法?

回答

14

獲取應用程序的根目錄的路徑:

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

This answer給出了幾個不同的公共Server.MapPath()用途也可能是使用你的破敗。

+4

你會更好使用'HostingEnvironment.MapPath()',因爲它不需要'HttpContext':http://stackoverflow.com/q/944219/3205 – skolima 2012-07-25 14:58:28

3

用途:

Server.MapPath("~"); 
4

在後面的代碼:HttpContext.Current.Server.MapPath( 「〜」)

相關問題