gpt4 book ai didi

reactjs - Microsoft.AspNetCore.Authentication.JwtBearer 使用 React.js 模板 (dotnet SDK v7.0.101) 将 Asp.Net Core 部署到 Azure Web App 时出错

转载 作者:行者123 更新时间:2023-12-03 03:29:45 27 4
gpt4 key购买 nike

我尝试将带有 React.js 模板 (dotnet SDK v7.0.101) 的 Asp.Net Core 部署到具有“个人帐户”身份验证类型的新 Azure Web 应用程序。

应用程序在使用本地主机时可以正常运行,但在部署后却无法正常运行。我收到以下错误:

[Error] 

Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler:
Exception occurred while processing message.System.NullReferenceException:
Object reference not set to an instance of an object.at
Microsoft.AspNetCore.ApiAuthorization.IdentityServer.
IdentityServerJwtBearerOptionsConfiguration.ResolveAuthorityAndKeysAsync(MessageReceivedContext messageReceivedContext)
at Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()

我怀疑 appsettings.json 中的 IdentityServer 设置有问题:

    "IdentityServer": {
"Clients": {
"AspNetCoreWithReactjs": {
"Profile": "IdentityServerSPA"
}
}
},

当我使用appsettings.Development.json IdentityServer 设置进行部署时,页面会加载,但登录不起作用。

我希望了解 Asp.Net IdentiyServer 的人可以建议我在 appsettings.json、program.cs 或其他地方需要做什么来解决这个错误。

除了连接字符串之外,提供的模板中没有任何更改,因此我不确定为什么它没有成功部署。

预期结果:

我期望页面的加载和工作方式与通过本地主机运行时相同。

<小时/>

重现步骤:

新项目

  • 在 Visual Studio 2022 Community Edition 中创建新项目
  • 使用 Asp.Net Core 与 React.js 模板

配置您的新项目:

  • 项目名称:AspNetCoreWithReactjs
  • 位置:C:\Users...\source\repos
  • 解决方案:创建新解决方案
  • 解决方案名称:AspNetCoreWithReactjs
  • 将解决方案和项目放在同一目录中:false

其他信息:

  • 框架:.NET 7.0(标准术语支持)
  • 身份验证类型:个人账户
  • 不要使用顶级语句: false

Appsettings.json 连接字符串

  • 更改了 DefaultConnection 连接字符串以使用现有的 Azure Sql 数据库
  • 在程序包管理器控制台中成功运行“update-database”

发布个人资料

  • 目标: azure
  • 具体目标:Azure 应用服务 (Windows)
  • 名称:AspNetCoreWithReactjs2023010123926
  • 托管计划:美国中部,S1

发布:

  • 配置:发布
  • 目标框架:net7.0
  • 部署模式:依赖于框架
  • 目标运行时:可移植

发布后,网址加载时出现 500 服务器错误:

  • 浏览器日志消息:无法加载资源:服务器响应状态为 500 ()
  • 请求网址:https://AspNetCoreWithReactjs2023010123926.azurewebsites.net/
  • 请求方法:GET
  • 推荐人政策:跨源时严格源
  • 本地存储:null(无本地存储对象)
  • Cookie:ARRAffinitySameSite、ARRAffinity

来自 Azure 日志的详细信息:

Connecting...
2023-01-01T12:58:30 Welcome, you are now connected to log-streaming service. The default timeout is 2 hours. Change the timeout with the App Setting SCM_LOGSTREAM_TIMEOUT (in seconds).
2023-01-01 12:58:36.131 +00:00 [Error] Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler: Exception occurred while processing message.System.NullReferenceException: Object reference not set to an instance of an object.at Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityServerJwtBearerOptionsConfiguration.ResolveAuthorityAndKeysAsync(MessageReceivedContext messageReceivedContext)at Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()
2023-01-01 12:58:36.150 +00:00 [Error] Microsoft.AspNetCore.Server.IIS.Core.IISHttpServer: Connection ID "17582052946865029492", Request ID "80000176-0000-f400-b63f-84710c7967bb": An unhandled exception was thrown by the application.System.NullReferenceException: Object reference not set to an instance of an object.at Microsoft.AspNetCore.ApiAuthorization.IdentityServer.IdentityServerJwtBearerOptionsConfiguration.ResolveAuthorityAndKeysAsync(MessageReceivedContext messageReceivedContext)at Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()at Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()at Microsoft.AspNetCore.Authentication.AuthenticationHandler`1.AuthenticateAsync()at Microsoft.AspNetCore.Authentication.AuthenticationService.AuthenticateAsync(HttpContext context, String scheme)at Microsoft.AspNetCore.Authentication.AuthenticationHandler`1.AuthenticateAsync()at Microsoft.AspNetCore.Authentication.AuthenticationService.AuthenticateAsync(HttpContext context, String scheme)at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)at Microsoft.AspNetCore.Server.IIS.Core.IISHttpContextOfT`1.ProcessRequestAsync()
#Software: Microsoft Internet Information Services 8.0
#Fields: date time s-sitename cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2023-01-01 12:57:59 ASPNETCOREWITHREACTJS20230101233926 GET / X-ARR-LOG-ID=392d3d5f-4c6c-47ff-b6a1-c99b689a7fb2 443 - 120.148.130.43 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/108.0.0.0+Safari/537.36+Edg/108.0.1462.54 ARRAffinity=146b48f2ff5efabcc69048783c5815d34c57b6d7adedb21b164d0e292cee67ef;+ARRAffinitySameSite=146b48f2ff5efabcc69048783c5815d34c57b6d7adedb21b164d0e292cee67ef https://portal.azure.com/ aspnetcorewithreactjs20230101233926.azurewebsites.net 500 0 0 366 1700 5379
2023-01-01 12:57:59 ~1ASPNETCOREWITHREACTJS20230101233926 GET /api/logstream/ X-ARR-LOG-ID=058aae75-bbeb-442b-adf5-7585174fab8b 443 - 120.148.130.43 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/108.0.0.0+Safari/537.36+Edg/108.0.1462.54 - - aspnetcorewithreactjs20230101233926.scm.azurewebsites.net 200 0 64 672 1603 35233

屏幕截图:

Step1

Step2

Step3

Step7

Step9

Step10

ErrorImage3

IdentityServerJwtBearerOptionsConfiguration

我在 GitHub 上发现了有问题的类:https://github.com/dotnet/aspnetcore/blob/main/src/Identity/ApiAuthorization.IdentityServer/src/Authentication/IdentityServerJwtBearerOptionsConfiguration.cs

是否可以“搭建”作为 DLL 导入的库,以便我可以在其中插入断点?我知道这仅适用于开发版本,但仍可能提供一些见解。

C# 是一种很棒的编码语言,但它比 Node.js 等调试与第 3 方库相关的错误更困难。

我可能应该继续使用 Duende 示例,但这个默认模板错误让我触发了。

最佳答案

您是否阅读过 Microsoft 关于 IdentityServer 的帖子使用自定义域和证书在 Azure 应用服务中托管?鉴于 IdentityServerJwtBearerOptionsConfiguration.ResolveAuthorityAndKeysAsync 失败,我认为这与此有关。

https://learn.microsoft.com/en-us/aspnet/core/blazor/security/webassembly/hosted-with-identity-server?view=aspnetcore-7.0&tabs=visual-studio#host-in-azure-app-service-with-a-custom-domain-and-certificate

Blazor WebAssembly 编写,但 Identity Server 区域仍然相同。

我也在这里写了一个如何解决这个问题的答案:

https://stackoverflow.com/a/66448397/3850405

关于reactjs - Microsoft.AspNetCore.Authentication.JwtBearer 使用 React.js 模板 (dotnet SDK v7.0.101) 将 Asp.Net Core 部署到 Azure Web App 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74975021/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com