我面對這個奇怪的問題:System.IO.Directory.Exists在Web應用程序
在.NET Web應用程序,有一些相當於此代碼:
if (Directory.Exists("config"))
{ ... }
它主要檢查看是否存在C:\ Windows \ system32 \ inetsrv \ config目錄,爲什麼代碼是這樣寫的超出了我和這個問題。
讓我困惑的是上面的代碼會在兩臺服務器上返回false,並在其他服務器上返回true。 (我希望它返回true,所有的時間,因爲C:\ WINDOWS \ SYSTEM32 \ INETSRV \ CONFIG是Server 2008的系統目錄)
問:我想知道爲什麼這些兩個服務器這個語句將返回false。我應該在哪裏看?
限制:我無法更改任何代碼(混淆/簽署的程序集),但我可以完全訪問服務器。
更新:答案顯然很簡單...在這兩個特定的服務器上,有人部署了一個更新版本的特定dll,其行爲有所不同。該死的!
根據[文檔](http://msdn.microsoft.com/en-us/library/system.io.directory.exists.aspx),如果調用方沒有權限,則它可以返回false。只是猜測,但程序可能無權因任何原因而無法讀取系統目錄。我不知道如何解決它,但你可能會開始尋找那個領域。 – 2010-09-11 06:06:13
服務器可能有不同的當前目錄嗎?一些可以從'inetsrv'目錄運行,而另一些則從'System32'運行。 – Gabe 2010-09-11 06:32:26
@傑夫,謝謝我會仔細檢查;加貝,我也想過,但不確定如何檢查,有什麼建議? – 2010-09-13 16:01:58