“IIS AppPoolASP.NET v4.0”登錄失敗 - SQL Server Web
我正在嘗試將網站從 SQL Server 2008 Express 遷移到 SQL Server Web,但該網站無法訪問數據庫。事實上,Express 只用於從 Visual Studio 的內置 Web 伺服器執行網站,所以我不確定配置在成熟的 IIS 7 下是否能正常工作。無論如何,當我嘗試訪問頁面時使用 Linq to Entities(需要網站連接到數據庫),我收到錯誤“‘IIS AppPool\ASP.NET v4.0’登錄失敗”。因此,我打開了 SQL Server Management Studio,並嘗試為使用者添加登錄名,但我只收到一條消息,指出“未找到 Windows NT 或使用者組 ‘*****\Asp.Net v4.0’” . 即使在我要求 Management Studio 檢查使用者名後,也會發生這種情況,它成功地完成了。有人可以告訴我我做錯了什麼嗎?此外,我也願意接受其他建議……一切都在同一台伺服器上執行,因此沒有遠端連接。出於這個原因,如果可能的話,我很想使用 Windows 身份驗證。
IIS 7 正在嘗試使用 IIS 應用程序池標識來訪問您的 SQL 數據庫。
因此,您必須首先授予 IIS 7 應用程序池對 SQL 伺服器的訪問權限。
為此,請進入 SQL Server Management Studio -> 伺服器實例 -> 安全 -> 登錄 -> 新登錄
登錄名將是“IIS APPPOOL\ASP.NET v4.0”。這是因為每次您在 IIS7 中創建應用程序池時,它都會創建一個與您的應用程序池同名的身份。在您的情況下,您使用的是 asp.net 4 附帶的預設應用程序池。
然後在您的數據庫上,轉到 Security -> Logins -> New login ,給它一個別名,然後選擇您在上一步中添加的使用者對象(IIS APPPOOL\ASP.NET v4.0),然後給它 db_owner (或無論您需要什麼)模式/角色權限。