具有个人帐户和托管 ASP.NET Core 的 Blazor WebAssembly 应用程序 - IIS - SQLLocalDB 15.0 找不到指定的资源语言 ID

Posted

技术标签:

【中文标题】具有个人帐户和托管 ASP.NET Core 的 Blazor WebAssembly 应用程序 - IIS - SQLLocalDB 15.0 找不到指定的资源语言 ID【英文标题】:Blazor WebAssembly App with Individual Accounts and ASP.NET Core Hosted - IIS - SQLLocalDB 15.0 The specified resource language ID cannot be found 【发布时间】:2021-08-02 07:38:22 【问题描述】:

使用以下规范创建一个新的Blazor WebAssembly AppMicrosoft Visual Studio 2019 Version 16.9.4Target Framework .NET 5.0Authentication Type Individual AccountsASP.NET Core Hosted

没有任何修改,我只是使用IIS Express 启动项目,运行迁移并将用户添加到数据库。

这没有问题,所以我创建了一个发布配置文件到文件夹。

然后,我在 IIS 10.0.19041.1 版本中设置了一个新站点,并将应用程序池设置为使用我已确认可与 SSMS 一起使用并且可通过 IIS Express 使用的 Windows 标识。

当我第一次在 Windows 日志中遇到此错误时运行它:

System.NullReferenceException:对象引用未设置为实例 的一个对象。在 Microsoft.Extensions.DependencyInjection.IdentityServerBuilderConfigurationExtensions.c.b__10_2(IServiceProvider sp)

我通过在appsettings.json 中添加一个KeyIdentityServer 来解决这个问题,就像appsettings.Development.json 一样:

"Key": 
  "Type": "Development"

在此之后,我收到了以前从未见过的错误:

SQLLocalDB 15.0 Windows API 调用 WaitForMultipleObjects 返回错误 代码:575。Windows系统错误信息为:Application Error 应用程序无法正确启动 (0x%lx)。点击确定关闭 应用程序。报告行:3714。

SQLLocalDB 15.0 Windows API 调用 FormatMessageW 返回错误代码: 1815. Windows系统错误信息为:在图像文件中找不到指定的资源语言ID。报告行:4296。

在这些错误之后是标准连接错误:

Microsoft.Data.SqlClient.SqlException (0x80131904):网络相关 或在建立连接时发生特定于实例的错误 SQL 服务器。服务器未找到或无法访问。核实 实例名称正确且 SQL Server 配置为 允许远程连接。 (提供者:SNI_PN11,错误:50 - 本地 发生数据库运行时错误。 LocalDB 期间发生错误 实例启动:SQL Server 进程启动失败。

应用程序池使用与我登录SSMS 并运行IIS Express 相同的身份。我之前使用LocalDB 13.1 使它像这样工作,但我必须升级我的LocalDB 才能使用Temporal tables

https://***.com/a/64210519/3850405

这可能是什么原因?

【问题讨论】:

这可能是权限问题,这个链接也有类似问题:dba.stackexchange.com/questions/30383/… 【参考方案1】:

根据@DingPeng 的评论尝试分享,但我仍然遇到同样的错误。

https://dba.stackexchange.com/a/30384/80960

检查了%localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances\mssqllocaldb的日志。

2021-05-12 00:08:24.41 登录 用户登录失败 '-\Oscar'。原因:无法显式打开 指定数据库 'aspnet-WebApplication7.Server-'。 [客户:]

2021-05-12 00:08:25.98 spid52 启动 数据库 'aspnet-WebApplication7.Server-'.

2021-05-12 00:08:26.00 spid52 开始并行重做 数据库 'aspnet-WebApplication7.Server-' 具有工作池大小 [4]。

2021-05-12 00:08:26.02 spid52 并行 redo 为数据库关闭 'aspnet-WebApplication7.Server-' 具有工作池大小 [4]。

然后我记得我实际上也遇到了 SQLLocalDB 13.0SQLLocalDB 13.1 的问题。工作到很晚的危险。

https://***.com/a/62810876/3850405

在遵循此答案后,我验证了 Load User Profile 已为我的 Application Pool 设置为 true,然后在 applicationHost.config 中将 setProfileEnvironment 设置为 true。我通过编辑位于以下位置的applicationHost.config 完成了最后一部分:

C:\Windows\System32\inetsrv\config\applicationHost.config

在此之后一切正常!

【讨论】:

以上是关于具有个人帐户和托管 ASP.NET Core 的 Blazor WebAssembly 应用程序 - IIS - SQLLocalDB 15.0 找不到指定的资源语言 ID的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 2.0 中 Web API 的本地用户帐户存储

VS 2017 ASP.NET Core Web 应用程序和个人用户帐户有效,但页面不存在

[ASP.NET Core Web应用上使用个人用户帐户存储在应用程序中的Postman模拟登录时出现400错误请求错误

具有个人用户帐户身份验证的 ASP.NET MVC 5 WEB API

在 Asp.Net Core 2.1 中找不到帐户页面

在 ASP.NET Core 中使用托管服务实现后台任务