我有一個網站 (Alpha) 在 Windows Server 2008 R2 上執行的 IIS 7.5 Web 伺服器上成功運作。
我基本上想克隆 Alpha 並擁有第二個網站 Beta,與 Alpha 相同,但程式碼會有所不同。我創建了第二個網站,也創建了第二個應用程式集區。據我所知,兩個應用程式集區的配置相同:自動啟動、v4.0、整合、身分:ApplicationPoolIdentity。
如果我將第二個網站(Beta)連接到自己的應用程式池,則它無法運作,但如果我將其連接到 Alpha 的應用程式池,則可以正常工作。據我所知,我沒有對 Alpha 的應用程式集區做任何特別的事情。據我所知,兩者的高級設定是相同的。
Beta 在連接到自己的應用程式集區時發生的故障是出現未處理的例外:例外詳細資料:System.Data.SqlClient.SqlException:使用者「NT AUTHORITY\ANONYMOUS LOGON」登入失敗
任何有關如何比較兩個應用程式集區或調試整個系統的想法將不勝感激。
我嘗試刪除 Beta 的應用程式集區並重新建立它。
答案1
您正在連接到具有整合安全性的 SQL-Server,對嗎?看來第二個池身分無權存取您的 SQL-Server/資料庫。
使用 ApplicationPoolIdentity,您的應用程式將連接到 SQL-Server,如下所示:
IIS AppPool\AppPoolName
確保兩個應用程式集區標識都可以存取您的伺服器和相關資料庫。
我可以建立一個 Windows 群組來放入各種應用程式集區標識,然後授予該 Windows 群組存取資料庫的權限。
還要檢查這個問題,這似乎解決了類似的問題並建議重新啟動伺服器。
答案2
您更改了運行 Alpha 池的帳戶,但忘記更改 Beta 池。
因此,Beta 池仍然在預設的 Networkservice(電腦帳戶)下運行,該服務無權存取您的資料庫。
編輯:
另一個可能的原因是您缺少 MS HotFix KB2545850,這似乎是隨機導致此問題。看http://support.microsoft.com/kb/2545850
有關詳細信息,請參閱此知識庫文章,其中還向您展示瞭如何重現並確認這是原因。 http://support.microsoft.com/kb/2672809