我有一个使用身份验证过滤器的MVC Web API 2.0 Web服务。 代码几乎跟随这个博客。 https://www.asp.net/web-api/overview/security/authentication-filters
然而,最近API开始采取行动。如果提供的凭据不正确,则返回500而不是401.此代码已经工作了几个月,并且代码没有发生任何变化。所以我做的第一件事就是检查在IIS 10中本地运行的解决方案,它运行正常。 但是服务器runnig IIS 7.5不断发送错误的错误代码。我通过将visual studio附加到w3w.exe进程来调试服务器中的代码,并且没有抛出任何异常。实际上我能够看到返回401以正确执行的代码。还要设置调试器设置以捕获任何正在播放的异常,但仍然没有得到任何异常。
在我看来,这是一个IIS配置问题,最近服务器获得了一个新证书,并进行了更改以将http请求重定向到https。 我查看了日志文件,看到请求正在处理401
2017-02-02 05:39:09 W3SVC4 P4850772 69.174.252.42 GET / mobile_api / api / login - 443 - 73.204.143.208 HTTP / 1.1 PostmanRuntime / 3.0.9 - - “mysite.com”401 0 0 261 313 109
所以我无法确定哪个配置导致客户端收到500应该是401的配置。任何帮助都表示赞赏。提前致谢。
答案 0 :(得分:0)
已经有一段时间但是我的问题已得到修复,并且我认为我会分享它。问题来自于在2.0 .net版本中运行4.5 .net版本api作为Web应用程序。老实说,我不知道细节。但是,父方向.net 4.5的迁移解决了这个问题,并没有对API进行任何改变。