1

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

操作系统:Windows XP Pro

IIS:5.1

开发平台:Visual Studio 2008

语言:C#

虚拟目录名称:portal

本地路径: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”,这是我的项目路径,虚拟路径位于末尾,不是有效路径. 我尝试使用波浪号或 localhost 并得到“无法映射路径'/portal/testFile.xlsx'”。例外。

任何想法我做错了什么?

4

1 回答 1

1

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

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

更新

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

于 2010-09-10T17:01:55.937 回答