簡體   English   中英

“訪問路徑'D:\\\\ Windows \\\\ system32 \\\\文件被拒絕”Azure Web App

[英]“Access to the path 'D:\\Windows\\system32\\file is denied” Azure Web App

我有一個使用IronPython的特定函數,在python代碼中它訪問當前目錄並創建一個臨時文件。 當它稍后嘗試根據相對目錄路徑訪問該文件時,它無法獲取它並且我從IronPython收到一條錯誤,指出"Access to the path 'D:\\Windows\\system32\\file is denied" ('文件'正在創建的唯一臨時文件)。 當我作為管理員在本地運行VS時,這一切都有效。 如果我在本地運行而不是作為管理員我收到相同的錯誤。 當我將應用程序發布到Azure上的應用程序服務時,它會向我提供access denied錯誤。

非常感謝您提前,如果您有任何其他問題,請告訴我。

D:\\ Windows \\ system32 \\ file被拒絕

它是在Azure WebApp上設計的。 Azure Web Apps(以及移動應用程序/服務,WebJobs和函數)在沙箱中運行。 應用受到嚴格限制。 如果我們想獲得有關WebApp的更多信息,請參閱Azure Web App沙箱

主目錄訪問(d:\\ home)

每個Azure Web App都有一個由Azure Storage存儲/支持的主目錄。 此網絡共享是應用程序存儲其內容的位置。 此目錄可用於具有讀/寫訪問權限的沙箱。

為了方便我們的客戶,沙箱在內核模式下實現動態符號鏈接,將d:\\ home映射到客戶主目錄。 這樣做是為了消除客戶在訪問站點時繼續引用自己的網絡共享路徑的需要。 無論站點在何處運行,或在VM上運行多少站點,每個站點都可以使用d:\\ home訪問其主目錄。

本地目錄訪問(d:\\ local)

每個Azure Web App都有一個臨時的本地目錄,並在VM上不再運行時刪除。 此目錄是存儲應用程序臨時數據的位置 沙箱實現了一個動態符號鏈接,它將d:\\ local映射到指向此目錄。 應用程序自然具有對此目錄的讀/寫訪問權限。

請注意,scm站點(運行Kudu的位置)中的d:\\ local文件夾與主站點(運行Web應用程序的位置)中的d:\\ local文件夾不同。 結果,他們無法看到彼此的本地文件。

我不會寫東西到C:\\ Windows \\ system32,因為那些是操作系統文件。 對於運行該程序的任何用戶,我覺得更舒服地寫入本地臨時目錄:%USERPROFILE%\\ AppData \\ Local \\ Temp

暫無
暫無

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

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