簡體   English   中英

Directory.Exists()奇怪的行為

[英]Directory.Exists() strange behavior

我有一個由IIS托管的WCF服務,並且嘗試使用Directory.Exists()方法。 如果傳遞了不存在的網絡位置,則此方法將掛起。 我已經搜索了它,發現由於Directory.Exists()內部實現,它“還可以”。 但是我編寫了一個簡單的控制台應用程序,該應用程序執行相同的操作,並且Directory.Exists()永遠不會掛起,始終返回' false '。 我使用我的(管理員)帳戶運行該應用程序,而IIS池正在“網絡服務”下運行。
你有什么想法嗎? 在服務或控制台應用程序中執行相同操作有什么區別?

這可能是由於Windows中存在用戶授權控制內容引起的(請記住當您嘗試訪問Windows中沒有訪問權限的文件夾時?要等很長時間才能回答“您無法訪問...。”。 。“ 或類似的東西)。

您正在運行哪個用戶? 您的用戶標識(按照您所說的可以訪問運行控制台應用程序的文件夾的方式)可以看到該文件夾​​。

因此,嘗試以您自己的用戶ID運行該應用程序。

此外,請檢查此鏈接: https : //stackoverflow.com/a/21385162/1378854

您確定應用程序作為網絡服務運行嗎? 本地網絡服務帳戶將無法訪問網絡。

使用UNC路徑而不是映射的網絡驅動器,因為映射的驅動器特定於您的用戶帳戶。 同樣,正如KMan所指出的,請確保應用程序池標識可以訪問UNC路徑目標。

請訪問此鏈接:

http://msdn.microsoft.com/zh-cn/library/ff649309.aspx 如何獲取wcf應用程序的工作路徑?

謝謝。

這里的關鍵實際上是關於在網絡服務與管理員帳戶上運行的。

您知道以后的用戶可以訪問網絡位置,但是您不確定前者是否可以訪問網絡。

這是您可能期望有訪問權,但是實際上不起作用的一個示例: https : //serverfault.com/a/177150

您的主要問題是帶有共享驅動器的計算機不在域上的事實

暫無
暫無

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

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