將 IIS 站點從 w2k 移動到 w2k3 的問題
舊伺服器是 Windows 2000,最初的安裝人員對幾乎所有內容的回答是 C:\ –> 每個人 –> 完全控制。但是,有一個設置文件,似乎在一定程度上起作用。
- 創建了一個本地管理員 com 使用者
- 創建引用該使用者的 COM+ 應用程序和站點提供的一些 dll
- 安裝了 .net 版本 1.0、1.1、2.0(我試過在每個版本下執行,錯誤沒有變化)
伺服器對象錯誤 ‘ASP 0178 : 80070005’ Server.CreateObject 訪問錯誤 /Include/fnLookups.asp,第 10 行 檢查權限時對 Server.CreateObject 的呼叫失敗。拒絕訪問此對象。
第 10 行似乎是:
設置 objClient = Server.CreateObject(“fooUser.CfooUser”)
我轉向系統日誌,我有:
特定於應用程序的權限設置不會將具有 CLSID {280D5CF7-80A4-40AC-844C-FE3653F02FF1} 的 COM 伺服器應用程序的本地啟動權限授予使用者 mydomain\myusername SID (mySID)。可以使用組件服務管理工具修改此安全權限。
這是某種進步,它可以很好地獲取 COM 應用程序和我的 ID。我將自己添加到 dcomdnfg 中“我的電腦”對象的“訪問權限”和“啟動和啟動權限”中 - 但我的吠叫似乎指向了錯誤的樹。
我盡我所能地瀏覽了mskb198432,雖然它似乎是針對早期版本的,但也沒有任何樂趣。
歡迎任何想法。
編輯 - 嘗試的建議列表
- 排除了 x64 的差異,在 x32 中執行同樣的問題。
- 排除文件權限
- “給每個人本地啟動和啟動權限,以確保這是一個 COM 權限問題” - 完成,不高興
- IIS5 隔離模式已啟用
編輯 - 我可以在舊的 Windows 2k 伺服器上查看任何可以提供一些見解的東西嗎?
您是否嘗試將相關使用者添加到本地 DCOM 使用者組?
http://technet.microsoft.com/en-us/library/cc738214(WS.10).aspx
這個錯誤是線索:
特定於應用程序的權限設置不會將具有 CLSID {280D5CF7-80A4-40AC-844C-FE3653F02FF1} 的 COM 伺服器應用程序的本地啟動權限授予使用者 mydomain\myusername SID (mySID)。
COM 對像不應該像你一樣執行,它應該作為 IUSR_MachineName 或網路服務使用者執行,即執行 IIS 的使用者。您不希望訪問該站點的每個使用者都像他們一樣執行 DLL——這是個壞主意。
確保您的虛擬目錄指向的物理目錄的權限讓執行 IIS 的使用者(IUSR_machinename)具有正確的權限,並且在 COM 中註冊的 DLL 對 IIS 使用者具有正確的權限。
權限很難在 IIS 中調試,因為安全事件並不總是記錄到安全事件日誌中。身份驗證和訪問控制診斷 1.0 工具是調查權限問題的絕佳工具。
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1285