從無法存取父資料夾的資料夾執行的程式將無法使用 tcp 層

從無法存取父資料夾的資料夾執行的程式將無法使用 tcp 層

我和我們公司的 IT 部門花了很多時間才找出這個問題。

該問題只出現在 Windows Server 2008、Windows 7 和 Windows 8 上。

我們正在公司內部開發一個程式。該程式運作良好,且問題並非特定於該程式。

此程式使用 localhost 與使用 Web 服務在電腦上執行的其他程式進行通訊。目前的問題是,如果程式位於使用者的主資料夾中,則此通訊不起作用。

我們花了很多時間找出原因,最近意識到,如果使用者有權存取可執行檔的 UNC 路徑中的所有父資料夾,問題就會消失。

因此,如果主磁碟機安裝在 H: = \SomeServer\hdrive$\SomeUser 且使用者無法存取 \SomeServer\hdrive$,那麼我們的程式會出現 TCP 錯誤,且 Web 服務將無法運作。

如果使用者隨後僅獲得該路徑上的「列出資料夾內容」權限,則 Web 服務將正常運作。

否則程式運作良好。我們檢查了所有dll檔案都連結成功,並且沒有出現其他錯誤。

這似乎是作業系統正在做的事情。有人知道為什麼會發生這種情況?

答案1

在 Windows 7 及更高版本中,某些資料夾預設受到保護。我的理解是這是出於安全原因。 IE。這使得程式 A 更難秘密修改程式 B 使用的 dll。

通常,我發現如果我右鍵單擊相關程式並“以管理員身份”運行,它就會正常工作。我不確定這對你的情況是否有效。

相關內容