【问题标题】:Upgrading IdentityServer AccessTokenValidation from version 3 to 4 leads to HTTP 500.19将 IdentityServer AccessTokenValidation 从版本 3 升级到 4 会导致 HTTP 500.19
【发布时间】:2017-12-20 16:37:59
【问题描述】:

目前我们有一个可用的 ASP.NET WebAPI 2 项目,它正在使用IdentityServer3.AccessTokenValidation 编译和运行。卸载 NuGet 包并安装较新的 IdentityServer4.AccessTokenValidation 后,项目现在停止运行并显示 HTTP 错误 500.19 - 内部服务器错误。我们已经尝试了很多事情,但我们不确定如何确定根本问题并解决。持续升级到 IdentityServer4 会重现该错误。

详细错误信息:

Module:       CustomErrorModule
Notification: SendResponse
Handler:      Not yet determined
Error Code:   0x80070490
Config Error: The configuration section 'system.webServer/httpErrors' cannot be read because it is missing a section declaration
Config File:  \\?\C:\Users\joe\AppData\Local\dftmp\Resources\91a2e717-5753-4ca7-b31d-40e068e91e84\temp\temp\RoleTemp\applicationHost.config

目前Startup.cs 中的所有 Identity Server 代码都已被注释掉,所以本质上唯一的变化是更换 IdentityServer 库,这会可靠地重现此问题

关于其他上下文,这里有一些细节:

  • 这是 WebAPI 2
  • .NET 4.6
  • 这将作为 Azure 云服务托管,但目前我们只是在本地工作,直到我们发现问题
  • 我们没有定义 httpErrors 部分并添加了一个对错误的存在没有影响的部分
  • 此列出的文件不存在
  • 我们没有进行任何权限更改,也不应该更改,因为它是一个云服务

更新 1

经过额外分析,我们观察到另一个错误发生在上述错误之前。我们已经确认在 cmets 中提到的“干净”虚拟机上也发生了同样的事情

详细错误信息:

Module:       CustomErrorModule
Notification: SendResponse
Handler:      ExtensionlessUrl-Integrated-4.0
Error Code:   0x80070002
Config Error: Cannot read configuration file
Config File:  applicationHost.config

我们的配置部分包含以下处理程序。作为升级的一部分,这些都没有改变,删除它对错误没有影响

<handlers>
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <remove name="OPTIONSVerbHandler" />
  <remove name="TRACEVerbHandler" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>

【问题讨论】:

  • 您能否在干净的 dev manchine/vm 上或在部署到 dev env 后重现此问题?
  • @abatishchev,好问题...是的...我只是在干净的 Windows Server VM 上进行了复制。完全相同的升级过程会导致相同的错误,尽管文件夹路径显然不一样。请注意,这意味着我可以在 Windows 桌面和 Windows Server 上进行复制。
  • 愚蠢的问题:如果你添加部分声明或/和部分本身怎么办?该临时配置的外观如何,您的 Web.config 有什么偏差?你知道为什么它是 appHost.config 而不是 Web.config 吗?内置section声明一般在machine.config或者appHost.config中,error也有提到,我觉得不是巧合。
  • @abatishchev,我们一直有 system.webServer 部分,只是没有 httpErrors 部分,添加它对此错误没有影响。至于web.config,我们确实有一个,唯一的更改是通过 IS NuGet 包安装(及其依赖项)对runtime/assemblyBinding 进行的更改。
  • C:\Users\joe\AppData\Local\dftmp\Resources\91a2e717-5753-4ca7-b31d-40e068e91e84\temp\temp\RoleTemp\applicationHost.config 是什么样子的?

标签: asp.net-web-api identityserver4


【解决方案1】:

V4 仅适用于 ASP.NET Core...

【讨论】:

  • 我想在以下问题下继续,但 repo 已存档:github.com/IdentityServer/IdentityServer3/issues/3017 尽管如此,很多人仍然使用 OWIN,将它与 IdSrv4 一起使用并支持从 v.3 到最新的验证高度赞赏。我已经在本地为 Ms.IdentityModel 5.2 和 Owin 4 升级了它,一切都很好。目前仅适用于本地模式,但通过 IdSrv4 修复服务器验证也可能很有用。您如何看待从 v.3 中解冻特定库或发布 fork:“v.3 client for v.4 server”?
猜你喜欢
  • 2018-07-10
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-28
  • 2019-07-14
  • 2011-02-26
  • 2012-02-03
相关资源
最近更新 更多