網絡路徑,我試圖讓:是一種持久性映射網絡驅動器:Directory.Exists在ASP.NET
Directory.Exists(@"E:\subdirectory")
從ASP.NET運行時,當E返回「真」。我用下面的命令把它從我的用戶,其成功返回,不會提示輸入憑據的上下文中運行一個命令行映射:
net use E: \\servername\sharename /persistent:yes
在這一點上,我完全在本地運行。
當我從控制檯應用程序或linqpad運行Directory.Exists行時,它將返回true。當我從運行在IIS下的ASP.NET應用程序(而不是 IIS express)運行此應用程序時,它將返回false。
我已更改我的應用程序池以使用與本地運行相同的用戶帳戶。我已驗證此功能已生效:
- 檢查我的Windows進程列表並確保w3wp.exe正在我的用戶帳戶下運行。
- 將我的ASP.NET應用程序附加到w3wp.exe並設置斷點,然後檢查Environment.UserName和Environment.UserDomainName以驗證我在我的用戶帳戶的上下文中運行。
但是,我的ASP.NET應用程序在檢查網絡共享時仍然返回false。
這是爲什麼?
您是否嘗試過使用Server.MapPath? Directory.Exists(Server.MapPath(@「E:\ subdirectory」)); – Kramb
'我想我有一個獨特的問題.'非常天真.. :) – Eser
@Kramb,謝謝,但是引發了一個異常:'E:/子目錄'是一個物理路徑,但是一個虛擬路徑是預期的。 – tarun713