我正在使用Server.MapPath来查找上传到远程服务器的文档的路径,以便我可以打开它。但是,在使用它时,它返回一个相对路径,因此不是搜索远程服务器而是搜索本地计算机。
我用来打开文档的是:
System.Diagnostics.Process.Start(Server.MapPath(Path.Combine("~/", document)));
哪里"文件"是相对于文档本身的路径的一部分,在本例中是" Files \ 2016 \ 11 \ doc_name"。所以我想走这个文档的路径,转到网站的顶层,然后从那里找到文档。
但是我希望这会返回类似于" server \ inetpub \ site \ Files \ 2016 \ 11 \ doc_name"但它返回的路径类似于" d:\ inetpub \ site \ Files \ 2016 \ 11 \ doc_name"。
有人可以帮助我找出正确的函数来获取我需要的路径吗?
修改
我已经设法使用以下代码将正确的路径聚集在一起:
string server = Environment.MachineName;
string path = Server.MapPath(Path.Combine("~/", documentpath));
System.Diagnostics.Process.Start(@"\\" + server + path.Substring(path.IndexOf(@"\")));
但是,虽然我可以在本地运行项目时访问该文件,但是当我尝试在发布的站点上执行此操作时,它会出错。由于我可以通过一种方式访问它,我假设它可能是权限(只是为了注意该站点正在使用Windows身份验证)。这是最可能的原因吗?