我去年曾經寫過一篇關於『存取被拒絕,因此無法開始監視 \\192.168.x.x\XXX 的變更 』的文章,當時是寫在 IIS6 的時候如何正確設定虛擬目錄,並讓 ASP.NET 網站能夠正常運作。今天我正式遇到 IIS7 的例子,並藉此分享 IIS7 如何正確設定目錄在 UNC 下的虛擬目錄(Virtual Directory)。
我這次的安裝的環境是:
- 兩台 Windows Server 2008 + IIS 7 伺服器 ( Web Farm 架構 ) ( 沒有 AD 的環境 )
- 一台檔案伺服器 ( 走 SMB/CIFS 協定 ) ( 俗稱的網路芳鄰 )
- 網站共享的檔案都放在檔案伺服器上,網路分享的 UNC 路徑為 \\192.168.x.x\UploadFiles
我需要在網站根目錄下建立一個 UploadFiles 虛擬目錄,並且目錄需對應到 \\192.168.x.x\UploadFiles 分享目錄。
要在 IIS7 下正確安裝無須執行任何 ASP.NET 程式的虛擬目錄,可沒你想個那麼直覺,以下是可以設定成功的步驟:
1. 新增一個應用程式集區(Application Pool)
新增應用程式集區時,名稱自己取,但是 .Net Framework 版本務必選取「沒有 Managed 程式碼」!
2. 接著並不是新增「虛擬目錄」,而是要新增「應用程式」才對!
接著必須設定別名、選取正確的應用程式集區、設定實體路徑(UNC路徑)、設定連線身份
設定「連線身份」時,記得在開放分享目錄的那台主機,與 WebFarm 中的成員主機,都必須要有同樣一組帳號、密碼,才能正確透過 UNC 存取檔案,否則一樣會導致權限不足無法存取檔案的情況。
我找不到任何相關的資料可參考,以上是我花了 3 個小時自己實驗出來的結果,有更好的解決方法歡迎留言分享。