我正在用IIS 10托管一个ASP.NET Core 3.1 Web应用程序,当试图通过Postman打我的API时,它抛出以下异常。
System.Security.Authentication.AuthenticationException: System error.
at Microsoft.AspNetCore.Authorization.AuthorizationHandler`1.HandleAsync(AuthorizationHandlerContext context)
at Microsoft.AspNetCore.Authorization.DefaultAuthorizationService.AuthorizeAsync(ClaimsPrincipal user, Object resource, IEnumerable`1 requirements)
at Microsoft.AspNetCore.Authorization.Policy.PolicyEvaluator.AuthorizeAsync(AuthorizationPolicy policy, AuthenticateResult authenticationResult, HttpContext context, Object resource)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
当在运行Web应用的机器上使用Postman时,我可以成功地发出HTTP请求,而且没有任何问题。 它似乎只发生在试图进行外部请求时,但错误文本是非常无益的,我不知道从哪里开始诊断。 据我所知,包含web应用项目文件的目录没有任何特定的安全限制,应用池使用的是具有足够权限的账户来访问和使用它们。
有没有人以前见过这样的错误文本,或者有什么想法,可能是什么问题?
原来,这个异常是由于数据库连接字符串不正确而抛出的。 这个特殊的请求会检查本地数据库以确保用户存在。
奇怪的是,我以前也遇到过这种相同类型的问题(数据库连接字符串在某一时刻被破坏改变),但产生的异常在其Exception文本和堆栈跟踪中更为具体。 在这里我唯一不能解释的是,为什么上述错误如此一般。