Asp.net 无法捕获异常,因为SecurityTokenExpiredException';在命名空间中不明确

Asp.net 无法捕获异常,因为SecurityTokenExpiredException';在命名空间中不明确,asp.net,vb.net,asp.net-web-api,Asp.net,Vb.net,Asp.net Web Api,我正在通过验证JWT令牌 Dim principal = tokenHandler.ValidateToken(token, validationParameters, securityToken) 验证按预期工作,但我无法捕获特定的异常。我试着通过 Catch ex As Microsoft.IdentityModel.Tokens.SecurityTokenExpiredException 它应该在令牌过期时捕获,但我不能使用它,因为我得到了以下错误 严重性代码说明项目文件行抑制状态 错

我正在通过验证JWT令牌

Dim principal = tokenHandler.ValidateToken(token, validationParameters, securityToken)
验证按预期工作,但我无法捕获特定的异常。我试着通过

Catch ex As Microsoft.IdentityModel.Tokens.SecurityTokenExpiredException
它应该在令牌过期时捕获,但我不能使用它,因为我得到了以下错误

严重性代码说明项目文件行抑制状态 错误BC30560“SecurityTokenExpiredException”在中不明确 名称空间 “Microsoft.IdentityModel.Tokens”。SoapToAPI C:\Users\source\repos\SoapToAPI\Helper\JWTUtil.vb 197处于活动状态


使用对象资源管理器(查看菜单->对象资源管理器)搜索
SecurityTokenExpiredException
。您可能引用了多个程序集来定义它。我用ObjectBrowser搜索结果的Pic更新了问题,并搜索SecurityTokenExpiredException。搜索结果确认您有两个不同的程序集,其中包含
SecurityTokenExpiredException
。现在,您需要单击每个对象,并查看对象资源管理器的右下窗格。如果在设置中选择了“查看容器”选项,这将告诉您部件名称(单击同一行最右边的下拉列表,其中包含“浏览”一词。它有一个齿轮图标)。我还应该告诉您为浏览目标选择“解决方案”。用每个程序集报告的路径更新我们。仅供参考,我正在解决此问题,这是我得到的结果,第一个是
公共类SecurityTokenExpiredException继承Microsoft.IdentityModel.Tokens的SecurityTokenValidationException成员
第二个是
公共类SecurityTokenExpiredException继承Microsoft.IdentityModel.Tokens.SecurityTokenValidationException成员Microsoft.IdentityModel.Tokens摘要:当收到的安全令牌在过去有过期时间时引发此异常。
由于这让我发疯,我进行了进一步挖掘,找到了问题的根源。我的项目有Microsoft.IdentityModel.Tokens和Microsoft.IdentityModel作为参考。一旦我删除了Microsoft.IdentityModel参考,问题就消失了。我猜这是通过一些导入语句自动添加的