[英]MVC : File.exists return false
我有这样的MVC方法:
public ActionResult DownloadDocument(string filePath){
//Other stuff
if (!System.IO.File.Exists(filePath))
{
FileLogger.Debug($"DownloadDocument : {filePath} NotFound");
}
//Other stuff
}
filePath看起来像=> \\\\ServerB\\Documents\\General\\Administration\\Doc1.pdf
在本地,我有一个IISExpress(我知道那不是很好,但别无选择...)和一个数据服务器(服务器B)。 文件在服务器B上。它的工作原理非常好,我可以检索文件。
发布时,我在服务器A和同一台数据服务器(服务器B)上都有一个IIS。 FilePath仍在服务器B上。在这种情况下,我无法检索文件,因为此行返回False:
System.IO.File.Exists(filePath)
在搜索解决方案时,我看到ServerMapPath,但是它没有帮助,因为filePath在服务器B而不是服务器A上。
当我将自己连接到服务器A时,如果在文件资源管理器中放置了\\\\ServerB\\Documents\\General\\Administration\\Doc1.pdf
,则可以正确检索文件。
也许这是一个安全问题,但不知道在哪里搜索...
谢谢您的帮助
这很可能是访问权限问题。 该文件夹确实存在,但是.NET无法确定,因为IIS用户无权访问网络共享。
您可以通过以网络用户(例如您自己的帐户)身份运行IIS应用程序池来进行检查。 不要在生产方案中这样做! 为IIS用户创建一个单独的域帐户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.