簡體   English   中英

Server.MapPath()返回與DirectoryInfo一起使用時不存在的路徑

[英]Server.MapPath() returning a path that does not exist when used with DirectoryInfo

我在IIS6中有一個虛擬目錄設置。 這映射到共享的網絡驅動器。

我可以使用正確地映射路徑

string mappedPath = HttpContext.Current.Server.MapPath(path);

然后我要創建DirectoryInfo對象,因為我想在目錄中找到一些文件。

DirectoryInfo updateDirectory = new DirectoryInfo(mappedPath);

但是然后updateDirectory.Exists是假的嗎? 我可以從mappedPath獲取字符串,然后復制到Start-> Run中以獲取路徑,因此我知道它存在。 我正在使用集成的Windows身份驗證對Web服務進行身份驗證,並具有對必要文件夾的權限。

代碼中我明顯缺少什么嗎? 還是這純粹是IIS等的設置和配置?

您需要檢查您的服務工作流程帳戶是否對該文件夾具有訪問權限。 AFAIK Windows身份驗證不會給工作過程帶來模仿,因此Windows身份驗證可能會有所不同。 或者(僅為了證明帳戶問題),您可以使用您的帳戶運行應用程序池,以查看問題是否會消失。

根據此鏈接:

http://bytes.com/topic/asp-net/answers/471616-server-mappath-virtual-directories

當對虛擬目錄使用Server.MapPath ,不會提供預期的輸出。

如果這是服務器權限,並且您正在使用Windows身份驗證,請確保在配置中包含此權限:

<identity impersonate="true" /> 

如果出現錯誤情況,DirectoryInfo返回false:如果文件夾不存在; 您沒有權限; 或它是斷開連接的網絡文件夾。

聽起來像是您的ASP.NET輔助進程的權限對我來說-模擬將解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM