javascript - $ajax webservice 在 webfarm 场景中失败

标签 javascript ajax webforms

我正在开发 ASP.NET Web 表单项目。 在特定情况下,当用户选中/取消选中 JavaScript 中的复选框时,我想设置一些 session 值。 在 JavaScript 中, session 不可访问,因此我开发了一个 Web 服务并调用 Web 服务方法,该 Web 方法将设置 session 的值。 这是我的 js Web 服务调用。

$.ajax({ 异步:假, url: baseUrl + '/' + "WebServices/ExtraInfoWebService.asmx/MyWebMethod", 数据: { hdnValue: $("[id$='hdnCCSarray']").val() }, 成功:得到 });

此 Web 服务调用在具有单个 IIS 服务器的开发计算机上完美运行,但在具有多个 IIS 框的生产环境中失败。我仔细观察发现这个webservice调用只在IE浏览器上不起作用。 如果有人对此有任何建议,请告诉我。

提前致谢!!!

最佳答案

如果您在 Web Farm 中运行,这意味着您无法使用默认 session 存储模式 (InProc),因为 Web Farm 的不同节点将无法同步 session 值。您将需要使用进程外 session 模式。有 2 个可用:

  • 状态服务器
  • SQLServer

您可以在this MSDN article中阅读有关不同 session 状态模式的更多信息。 .

或者更好:重构您的代码,使其根本不依赖于任何 session 。我发现拥有非无状态的 Web 服务是一个非常糟糕的设计。

关于javascript - $ajax webservice 在 webfarm 场景中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16476120/

相关文章:

javascript - 有 2 个相同的接收值来自另一个 Promise : in one case it works,,它给出了 TypeError: x is not a function

javascript - 在javascript中调用存储在数组中的多个参数的函数

php - PHP Ajax开发环境的建议

javascript - 通过 AJAX 渲染部分刷新数据

javascript - Ajax调用,创建数组对象

javascript - Azure documentdb 存储过程返回部分结果

javascript - 图像向右滑动以覆盖文本,然后在向后滑动时显示新文本

c# - 我应该使用哪个 "using"来在类里面进行 session /请求?

jquery:按属性查找第一个元素

c# - 服务器控件、客户端控件、面板、默认按钮和客户端事件