【问题标题】:401 Returned for every 5th call in an ASP.NET MVC application that returns JSON在返回 JSON 的 ASP.NET MVC 应用程序中每 5 次调用返回 401
【发布时间】:2009-01-13 23:24:12
【问题描述】:

这太疯狂了。

我有一个使用 Windows 身份验证的 ASP.NET MVC 应用程序,除其他外,它通过返回 JSON 数据与许多 ExtJs Javascript 组件进行交互。

问题在于,即使用户成功通过身份验证,从 MVC 获取一些 JSON 数据的每 5 个请求都会导致两个“401 Unauthorized”响应,然后是“200 OK”响应。再一次,这发生在每 5 次调用......为什么?我不知道。

有趣的是,每个响应都包含预期的 JSON!!!

还有其他人遇到过这种行为或对为什么会发生有任何想法吗?

谢谢-wg

【问题讨论】:

  • 开发环境会出现这种情况吗?您运行的是哪个版本的 IIS?

标签: asp.net-mvc json extjs http-status-code-401


【解决方案1】:

这似乎是 Windows 身份验证的设计方式:

How do I stop 401 responses from TFS 2008

我在 IIS 6 上运行但使用 Forms 身份验证的 ASP.NET MVC 应用程序时遇到了同样的问题。它让我发疯,直到我意识到我们的服务器设置为通过 NTLM 对每个请求进行身份验证,因为它是一个内部 Intranet 服务器。所以这真的不是问题,因为请求在 200 响应之后处理得很好,而且似乎根本没有拖慢加载时间。

【讨论】:

    【解决方案2】:

    我曾经遇到过这种情况,就我而言,这是因为我让虚拟 Web 文件夹使用了两种不同的身份验证方法:Windows 身份验证和基本身份验证。

    每隔一段时间,IIS 会尝试使用 Windows 身份验证来对用户进行身份验证,而不是我原本打算使用的基本 HTTP 身份验证(这种情况最常发生在 Internet Explorer 中)并返回“未经授权”响应。

    尝试禁用您不使用的身份验证方法,看看会发生什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-07
      • 2011-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 2017-07-04
      相关资源
      最近更新 更多