2013年4月5日 星期五

'IIS APPPOOL\DefaultAppPool' 的登入失敗的問題所在及如何解決

最近因為把開發環境的web application porting到azure平台的IIS8
(for windows server 2012)時,
因為有帳密(USER/ROLE)之故所以遇到這樣的現象
app_data裡面的東西,應該是整個清空重建,怎麼重建正式環境的IIS user/role?
首先,除了先建立好你的web app實體路徑對應之外,為了要讓應用程式集的「應用程式」要能吃web config中的一堆connnection string,要到應用程式集區找出執行你的應用程式進階設定做以下的修改:
這樣才能走下去
好了,之後我們要設定applicatio的 user & role,不必再灌個vs2012然後在asp.net 組態設定,
請直接切到那個web application 的設定中,有兩個東西 --.net 使用者 & .net 角色--如下圖
請依之前我們在vs2012 asp.net組態設定時設定帳密及角色
至於「連結字串」及「提供者」不要動,讓IIS預設就可以了

現在你執行你的web app的登入介面時,一定會有
「 'IIS APPPOOL\DefaultAppPool' 的登入失敗」的錯誤訊息
這就是今天的重點了,你除了要在app_data中的 「ASPNETDB.MDF」及「aspnetdb_log.ldf」 兩個檔案要加入「IIS APPPOOL\DefaultAppPool 」的read/write權限之外,接著在IIS中把default web server停下來(否則會有lock的現象發生)
在MSSQL 2012express的manager studio,
1用windows admin登入
2.把ASPNET.MDF掛入資料庫
3在安全性-->登入的user加入這個虛擬帳號,並設定相對權限(對整個MSSQL server而言)
 如圖:
set default conneted DB to the APSNETDB.MDF




設定登入使用者及資格對象

5.設定完之後,也要到那個被附掛的db設定 「IIS APPPOOL\DefaultAppPool」的相對權限:

以上設定完成後,再到IIS中把預設的web server啟動
如此,登入及驗證角色的機制就可以為application中所使用了,加油

沒有留言:

張貼留言