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

OS:Windows XP Pro

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 stayings jjohnson 我的文档 visual Studio 2008 clocesites clienterite localhost localhost portal portal testfile.xlsx”,这是我的项目路径,在末端拍打的虚拟路径,不是一个有效的路径。我尝试使用Tilde或localhost,并获得“无法映射路径'/portal/testfile.xlsx'”。例外。

有什么想法我做错了什么?

有帮助吗?

解决方案

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

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

更新

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top