[英]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.