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使用此连接字符串: 在此处输入图像描述

一般承认的答案

答案是这里有两个不同的LocalDB实例。与作为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合法吗? 是的,了解原因