﻿# 存取被拒絕，因此無法開始監視 \\x.x.x.x\XXX 的變更 (IIS7)

我去年曾經寫過一篇關於『[存取被拒絕，因此無法開始監視 \\\\192.168.x.x\\XXX 的變更](/post/2008/12/16/Failed-to-start-monitoring-directory-changes-when-using-UNC-virtual-directory) 』的文章，當時是寫在 IIS6 的時候如何正確設定虛擬目錄，並讓 ASP.NET 網站能夠正常運作。今天我正式遇到 IIS7 的例子，並藉此分享 IIS7 如何正確設定目錄在 UNC 下的**虛擬目錄(Virtual Directory)**。

![載入組態檔時發生錯誤: 存取被拒絕，因此無法開始監視 '\\\\x.x.x.x\\UploadFiles' 的變更。](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/06b120794055781b1be0-image_3.png "載入組態檔時發生錯誤: 存取被拒絕，因此無法開始監視 '\\x.x.x.x\UploadFiles' 的變更。")

我這次的安裝的環境是：

1.  兩台 Windows Server 2008 + IIS 7 伺服器 ( Web Farm 架構 ) ( 沒有 AD 的環境 )
2.  一台檔案伺服器 ( 走 [SMB/CIFS 協定](http://zh.wikipedia.org/wiki/SMB) ) ( 俗稱的**網路芳鄰** )
3.  網站共享的檔案都放在檔案伺服器上，網路分享的 UNC 路徑為 [\\\\192.168.x.x\\UploadFiles](file://\\192.168.x.x\UploadFiles)

我需要在網站根目錄下建立一個 UploadFiles 虛擬目錄，並且目錄需對應到 [\\\\192.168.x.x\\UploadFiles](file://\\192.168.x.x\UploadFiles) 分享目錄。

要在 IIS7 下正確安裝無須執行任何 ASP.NET 程式的虛擬目錄，可沒你想個那麼直覺，以下是可以設定成功的步驟：

1\. 新增一個應用程式集區(Application Pool)

![新增應用程式集區](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/a26d02f15760498e69f7-image_6.png "新增應用程式集區")

新增應用程式集區時，名稱自己取，但是 .Net Framework 版本務必選取「**沒有 Managed 程式碼**」！

![新增應用程式集區時，名稱自己取，但是 .Net Framework 版本務必選取「沒有 Managed 程式碼」！](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/22817622700d07b79abe-image_9.png "新增應用程式集區時，名稱自己取，但是 .Net Framework 版本務必選取「沒有 Managed 程式碼」！")

2\. 接著並不是新增「虛擬目錄」，而是要新增「應用程式」才對！

![接著並不是新增「虛擬目錄」，而是要新增「應用程式」才對！](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/4204e8e61a63c95a1329-image_12.png "接著並不是新增「虛擬目錄」，而是要新增「應用程式」才對！")

接著必須設定**別名**、選取**正確的****應用程式集區**、設定**實體路徑**(UNC路徑)、設定**連線身份**

 ![image](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/96b1f2459e4686f15ef6-image_18.png "image")

設定「連線身份」時，記得在開放分享目錄的那台主機，與 WebFarm 中的成員主機，都必須要有同樣一組帳號、密碼，才能正確透過 UNC 存取檔案，否則一樣會導致權限不足無法存取檔案的情況。

我找不到任何相關的資料可參考，以上是我花了 3 個小時自己實驗出來的結果，有更好的解決方法歡迎留言分享。
