Server.MapPath不起作用

时间:2010-09-10 16:57:06

标签: visual-studio visual-studio-2008 iis virtual-directory server.mappath

我正在尝试访问我在IIS中首次创建的虚拟目录中的文件,但结果却很奇怪。

操作系统:Windows XP专业版

IIS:5.1

开发平台:Visual Studio 2008

语言:C#

虚拟目录名称:门户网站

本地路径:C:\ digital_communications_report_portal

默认网站本地路径:c:\ inetpub \ wwwroot

我可以http://localhost/portal/testFile.xlsx下载文件,没有任何问题。

我尝试其中任何一个

string realFilename = Server.MapPath(ResolveUrl("~/portal/testFile.xlsx"));
string realFilename = Server.MapPath(ResolveUrl("localhost/portal/testFile.xlsx"));

并获取“C:\ Documents and Settings \ jjohnson \ My Documents \ Visual Studio 2008 \ WebSites \ clientsite \ localhost \ portal \ testFile.xlsx”这是我的项目路径,其末尾是虚拟路径,而不是一条有效的道路。我尝试使用波形符或本地主机,然后得到“无法映射路径'/portal/testFile.xlsx'。”异常。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果我没弄错的话,Server.MapPath(ResolveUrl("~/relative/path/to/file"))不是你想要的。它将产生/rooted/path/to/file,当传递给Server.MapPath()时,不会产生有效的位置。

而是简单地使用Server.MapPath("~/relative/path/to/file");

更新

您遇到的问题是由于您在相对URL中包含虚拟目录名称(“portal”)。您的相对URL不需要指定虚拟目录名称,只需指定相对于应用程序根目录的所需文件的路径。