【问题标题】:Long-running Ajax call returns http status 401长时间运行的 Ajax 调用返回 http 状态 401
【发布时间】:2023-03-24 15:10:01
【问题描述】:

我有一个加载 asp.net 页面,然后进行可能需要一些时间的 ajax 调用。有时通话超时。在某些数据不够完美的情况下,这是意料之中的。我注意到它实际上会提示输入最终用户的用户名和密码。这似乎是新的:这个页面多年来一直在拨打这个电话,没有像这样的 401 错误,我还没有听说过这种行为的报告。当我查看提琴手时,我看到 Web 服务器在进行 Web 服务调用时返回 401.1 错误。 更多信息: 这是一个调用本地 Web 服务的 ASP.NET 页面。这里是脚本管理器:

    <ajax:ToolkitScriptManager  ID="ScriptManager1" runat="server" AsyncPostBackTimeout="5000">
     <Services>  
<asp:ServiceReference Path="~/WebService/DataWebService.asmx" />
   </Services>
    </ajax:ToolkitScriptManager >

这是对 WS 的调用:

 WSNameSapce.WebService.set_timeout(2000000) 
 WSNameSapce.DataWebService.GetValues('<%=Current.AccountId%>',displayResult, displayErrorMessage);

网站使用 IIS2 win server 2003,并配置为使用匿名身份验证。

网络服务调用一些存储过程并进行一些(WCF)网络服务调用。当 procs/WS 调用需要很长时间时。我看到线程中止异常,并提示我提供我的 Windows 登录信息:就像配置了基本身份验证一样。 在提示我提供 Windows 登录信息之前,我了解一切。如果 Web 服务超时,我应该得到一个 500 错误,我的代码会处理该错误。

任何帮助我们理解为什么提示用户登录,以及如何防止这种情况发生,我们将不胜感激。

【问题讨论】:

  • 这个错误似乎是服务器上更大问题的征兆。还有其他问题正在发生,我得出的结论不是 IIS 问题,而是服务器问题。

标签: c# asp.net web-services iis-6 http-status-code-401


【解决方案1】:

可怕的 401.1。您未能通过管道中某处的 NTLM 进行身份验证。确保您可以在所有端点上进行身份验证。

401.1 and 401.2-Authentication Problems

【讨论】:

  • 感谢您的链接。让我明白的是它适用于大多数请求。只有当它请求大量数据时。此外,所有 WS/WCF 服务都使用匿名身份验证。
  • 根据我对我的问题的评论,这是一个更大问题的症状。接受此链接,因为此链接是宝贵的资源。
猜你喜欢
  • 1970-01-01
  • 2014-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
相关资源
最近更新 更多