将IdentityServer AccessTokenValidation从版本3升级到4会导致HTTP 500.19

时间:2017-12-19 00:39:31

标签: asp.net-web-api identityserver4

目前,我们有一个正在运行的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

经过额外的分析后,我们发现了另一个错误,这个错误发生在上面提到的错误之前。我们已经确认同样的事情也发生在' clean' VM在评论中提到

详细错误信息:

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>

1 个答案:

答案 0 :(得分:1)

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