我发现了过去两天一直在发生的奇特事情。
我在Web API 2.0中返回自定义JSON消息。例如。当有一个未经授权的响应(HttpStatusCode 401)..它只返回HttpStatusCode而不是JSON。
简单地说,除了HTTP状态代码200之外的任何东西都不会返回我已经明确放入我的ActionHandlers返回的自定义JSON。
最近在过去两天发生了这种情况。我已经在本地测试了我的代码,并且我得到了我需要的预期输出...自定义JSON错误消息,但是一旦我发布到我的一个插槽,无论是生产还是dev..only HttpStatus代码都被返回。
任何人都可以为我验证这一点吗?我需要一种方法来解决这个问题或至少让Azure看看这个并告诉我该怎么做。我怀疑它是Azure更新,我不知道。
答案 0 :(得分:0)
当您远程测试您的网站时,可能会出现某种customErrors
逻辑。在本地浏览时通常会禁用这些逻辑。
检查您的配置。在IIS下,还有httpErrors
配置可能会干扰。
当您的代码产生错误响应时,您是否已将TrySkipIisCustomErrors
设置为true?
答案 1 :(得分:0)
好的,所以我已经找到了问题。
将Visual Studio升级到2015以使.NET Framework使用4.6。
将解决方案中的所有项目更改为指向4.6,重新编译,发布并最终测试。
错误现在也返回JSON。
IMO,Azure至少可以向我们发送更新。无论如何,发布这个答案所以希望其他任何使用Web Api的人都可以轻易放弃这个问题。