0

我已經創建了IIS站點並將其指向部署文件夾。我已啓用stdout日誌記錄,這是錯誤:Aspnet核心部署到IIS - HTTP錯誤502.3

info:Microsoft.Extensions.DependencyInjection.DataProtectionServices [0] 用戶配置文件可用。使用'C:\ Users \ No Managed Code \ AppData \ Local \ ASP.NET \ DataProtection-Keys'作爲密鑰存儲庫,並使用Windows DPAPI來加密靜態密鑰。 失敗:Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler [1] 迭代查詢結果時,數據庫中發生異常。 System.Data.SqlClient.SqlException:無法打開登錄請求的數據庫「KeyStoneDb」。登錄失敗。 用戶'IIS APPPOOL \ No Managed Code'登錄失敗。

因此,我將登錄添加到具有所有必要權限的SQL。在DEV中重新測試 - 很好,但是在運行IIS時,我仍然遇到問題。正在使用的應用程序池是'沒有託管代碼'。

爲什麼不能連接到數據庫?

回答

0

IIS AppPool帳戶是虛擬帳戶,因此它們實際上並不以系統上的普通用戶身份存在。

您無法使用該身份訪問聯網資源。共享\網絡資源,如需要與這些帳戶進行通信的文件共享和數據庫,需要具有適當權限的'domain \ machinename $'。

給你的數據庫賦予'domain \ machinename $'適當的權限。這應該做到這一點。

+0

我已經建立了一個可以訪問相應數據庫模式的SQL Server登錄和用戶登錄。然後,我爲aspnet核心設置了正確的應用程序池(無管理代碼)。作爲應用程序池標識,我使用了我的Windows管理員登錄帳戶。測試時,應用程序池標識(connect as ..),我收到一條成功消息,說明憑據是有效的。但是,當我瀏覽網站時,出現以下錯誤:用戶'IIS APPPOOL \ No Managed Code'登錄失敗。爲什麼當我將應用程序池標識設置爲我的Windows登錄時使用此帳戶? – Greg

+0

您的連接字符串是否在適當的appsettings.json中正確設置,我會檢查正在使用的環境。看起來像不正確的appsettings.json正在習慣於我。 –

+0

這是我在appsettings.json中的連接字符串:{ 「ConnectionStrings」:{ 「DefaultConnection」:「Data Source = GREG-THINK \\ SQLEXPRESS; Initial Catalog = KeyStoneDb; Integrated Security = true; MultipleActiveResultSets = true」 } , 「記錄」:{ 「IncludeScopes」:假的, 「的LogLevel」:{ 「默認」: 「調試」, 「系統」: 「信息」, 「微軟」: 「信息」 } } } – Greg

相關問題