4

I create a web site and mapped it to the D:\MyWebApp and in Plugins sub directory I create a virtual directory and mapped it to D:\Project\Presentation\Web\Accounting. the problem is when I want to get the physical path of thehttp://localhost/Plugins/Accounting I get wrong result.

both Server.MapPath("~/Plugins/Accounting") and Server.MapPath("/Plugins/Accounting") returns 'D:\MyWebApp\Plugins\Accounting' that does not exist physically. I want to get D:\Project\Presentation\Web\Accounting. I search for it and just get below lines:

  1. Server.MapPath(".") returns the current physical directory of the file (e.g. aspx) being executed
  2. Server.MapPath("..") returns the parent directory
  3. Server.MapPath("~") returns the physical path to the root of the application
  4. Server.MapPath("/") returns the physical path to the root of the domain name (is not necessarily the same as the root of the application)

but in my case (virtual directory in a subfolder), it's not work !!! I use IIS8 and Asp.Net-Mvc 4 and C#4. how can I get this?

4

3 回答 3

2

尝试这个

删除“/插件”

根据请求http://localhost/Plugins/Accounting Server.MapPath("~/")方法提供应用程序文件夹的路径..

Server.MapPath("~/Accounting/");//path to your Accounting folder
于 2013-07-04T05:49:38.343 回答
0

问题是您有一个虚拟目录,它将重置 asp.net 认为是您的应用程序的基本目录。它真的需要在虚拟目录中吗?如果是这样,您可以尝试检查 Request.ApplicationPath 来找到它。

于 2013-07-04T15:55:19.527 回答
0

用这个,

Request.PhysicalApplicationPath + "Plugins\\Accounting\\
于 2013-07-04T05:18:15.367 回答