具有个人帐户和托管 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 App
和Microsoft Visual Studio 2019 Version 16.9.4
:Target Framework .NET 5.0
、Authentication Type Individual Accounts
和ASP.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
中添加一个Key
到IdentityServer
来解决这个问题,就像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.0
和 SQLLocalDB 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错误请求错误