Blazor CRUD示例:IIS服務器上的請求的HTTP錯誤500

asp.net-core blazor c# iis

我剛剛將Blazor CRUD示例發佈到本地服務器。網站運行良好,但是當我轉到獲取數據頁面時,我收到了HTTP Error 500。當我在Visual Studio上運行時,一切都運行良好,但IIS服務器。我在上下文文件中有連接字符串。我還在應用程序池設置頁面上編輯了連接字符串,但仍然無法正常工作。

這是我在上下文文件中使用的代碼片段:

        optionsBuilder.UseSqlServer(@"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=master;Trusted_Connection=True;");

我還為IIS使用此連接字符串: 在此處輸入圖像描述

一般承認的答案

答案是這裡有兩個不同的L​​ocalDB實例。與作為Windows服務運行的SQL Server Express實例不同,LocalDB實例作為用戶進程運行。當不同的Windows用戶連接到LocalDB時,他們最終會為每個用戶啟動不同的LocalDB進程。當我們從Visual Studio連接到(localdb)\ v11.0時,會為我們啟動一個LocalDB實例並作為我們的Windows帳戶運行。但是當在IIS中作為ApplicationPoolIdentity運行的Web應用程序連接到LocalDB時,將為其啟動另一個LocalDB實例並作為ApplicationPoolIdentity運行!實際上,即使Visual Studio和Web應用程序都使用相同的LocalDB連接字符串,它們也會連接到不同的LocalDB實例。顯然,在我們的LocalDB實例上從Visual Studio創建的數據庫在Web應用程序的LocalDB實例中將不可用。

輕鬆修復使用SQL Server Express而不是LocalDB

更多詳情 - https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-2-instance-ownership/



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因