框架Web API引用升级导致.Net失败



我有一个使用.Net Framework Web API v4.8开发的API。我已经升级了以下程序集,并相应地设置了它们的重定向:

  • Microsoft.Owin 3.1.0.0->4.2.2.0
  • System.IdentityModel.Tokens.Jwt 4.0.20622.1351->5.3.0.0
  • Microsoft.Owin.Security 3.1.0.0->4.2.2.0
  • Microsoft.Owin.Security.Auth 3.1.0.0->4.2.2.0
  • Microsoft.Owin.Security.Jwt 3.1.0.0->4.2.2.0

但是,当我调用有效的API端点时,我会得到IIS 404响应(而不是.Net响应(。它表示在该位置没有任何侦听,这向我表明.Net处理程序错误严重,已完全崩溃,IIS正在尝试处理该请求。如果我将重定向改回旧版本,那么我会再次看到.Net错误响应。在升级后的版本中,我的调试断点都没有被命中,也没有错误日志记录。事件查看器中也没有任何内容。IIS日志只记录我试图到达的端点和404响应代码。我该如何调试它以查看我正在使用的引用出现了什么问题?

在Identity Server示例项目中偶然发现了这一点,需要启用Katana记录器才能查看OWIN链的下落。在Web.config中添加了这一点,它记录了我的访问令牌受众的验证问题。

<configuration>
....
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="Microsoft.Owin">
<listeners>
<add name="KatanaListener" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="KatanaListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="katana.trace.log" traceOutputOptions="ProcessId, DateTime" />
</sharedListeners>
<switches>
<add name="Microsoft.Owin" value="Verbose" />
</switches>
</system.diagnostics>
</configuration>

最新更新