【问题标题】:jquery c# webmethodjquery c# webmethod
【发布时间】:2012-08-26 11:58:17
【问题描述】:

我有一个应用程序,我正在从 Js 调用 webmethod。

 $.ajax({
    type: "POST",
    url: "mypage.aspx/MyWebMethod",
    ....
    ....
    });

在我的 C# webmethod 中我已经设置了

[WebMethod(EnableSession = true)]

这个问题很奇怪,我什至不知道是Jquery还是C# 或服务器设置问题。

问题: 当我运行网页并开始使用应用程序时,一切正常。 但是,如果我只是保持网页打开(大约 5 分钟) 并且不要对它做任何事情..然后尝试使用该应用程序,ajax调用失败。

谁能告诉我可能是什么问题?

【问题讨论】:

  • 好的,试试这个:启动服务器 (F5),然后进行 ajax 调用。然后等待 5 分钟,或者它停止工作所花费的时间,然后尝试在您的服务器上打开一个页面,看看它是否加载。然后,在不刷新您的第一页的情况下,执行 ajax 调用,看看它是否有效。
  • 您正在使用 EnableSession=true 的网络方法,并且您的会话可能会在 5 分钟后过期,因此您的 ajax 调用失败,请考虑延长会话的到期日期
  • @Sora ...如何使会话持续更长时间..?
  • 更改您的 web.config 文件中的到期日期在 google 中进行一些搜索 :)
  • 问题在于会话变量每 10 分钟左右被擦除一次。即使通过 global.asax,我也无法将时间设置为更高的值……因此我存储了会话变量在隐藏变量中不是很敏感并使用它..

标签: c# jquery webmethod


【解决方案1】:

强烈建议您更改此设置:

[WebMethod(EnableSession = true)]

到这里:

HttpContext.Current.Session

这样你就不需要使用(EnableSession = true) 我自己测试了一下,没有问题

祝你好运!

【讨论】:

    【解决方案2】:

    很可能是 ASP 会话即将到期,而您收到的是 HTTP 401 或类似问题。

    您可以在 ajax 中处理 error{} 回调,或者考虑使用 various workarounds 在后台保持会话活动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      相关资源
      最近更新 更多