Iis
虛擬目錄到 UNC 路徑的權限問題
我的站點中有一個虛擬目錄(測試環境)。它是一個 UNC 共享,也用作公共 FTP。
它被配置為作為域管理員帳戶連接,“測試設置”表示一切正常。但是,當我嘗試連接到它時,我得到:
500 - “無法開始監視 \INTRANET\FTP\test\web.config 上的更改,因為訪問被拒絕”
這是一個 ASP.NET YSOD。我不確定為什麼 ASP.NET 會參與其中,因為它是我請求的靜態 .jpg 文件。
我嘗試打開失敗的請求跟踪,這是特定的錯誤:
- 模組名稱 WindowsAuthentication
- 通知 2
- HttpStatus 500
- HttpReason 內部伺服器錯誤
- HttpSubStatus 0
- 錯誤程式碼 0
- 配置異常資訊
- 通知 AUTHENTICATE_REQUEST
- ErrorCode 操作成功完成。(0x0)
如果我將“物理路徑登錄類型”從 ClearText 更改為 Network。我收到以下 IIS 錯誤:
HTTP 錯誤 500.19 - 內部伺服器
錯誤無法訪問請求的頁面,因為該頁面的相關配置數據無效。
詳細的錯誤資訊
- 模組IIS Web 核心
- 通知開始請求
- 處理程序尚未確定
- 錯誤程式碼
0x80070005
- 配置錯誤由於權限不足,無法讀取配置文件
- 配置文件
\\?\UNC\INTRANET\FTP\test\web.config
- 請求的 URL http://test.mydowmain.com:80/uploads/images/ca49acf6-6174-412e-8abd-59fab983e931.jpg
- 物理路徑
\\INTRANET\FTP\test\images\ca49acf6-6174-412e-8abd-59fab983e931.jpg
- 登錄方式尚未確定
- 登錄使用者尚未確定
- 失敗的請求跟踪日誌目錄
C:\inetpub\logs\FailedReqLogFiles
奇怪的是,這並沒有生成失敗的請求日誌——我已將失敗的請求跟踪設置為跟踪錯誤程式碼為 400-999 的錯誤。
另外值得注意的是,如果我從 IIS 中打開配置功能,我會看到拒絕訪問錯誤。
我在我的本地開發機器上對相同的 UNC 路徑和相同的使用者進行了完全相同的設置。只是在測試伺服器上沒有。
我究竟做錯了什麼?
它是一個 ASP.net 應用程序這一事實可能正是問題所在。您的應用程序池標識必須具有權限(不一定是 IIS 標識;預設情況下,應用程序池標識是本地網路服務帳戶。)您還可能需要在 IIS 電腦上執行 caspol.exe。
http://msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.80%29.aspx
http://learn.iis.net/page.aspx/50/aspnet-20-35-shared-hosting-configuration/
%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag 1. -url "file://\\remotefileserver\content$\*" FullTrust