server.mappath不起作用
-
02-10-2019 - |
题
我正在尝试第一次在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不需要指定虚拟目录名称,而只是相对于应用程序根的所需文件的路径。