【发布时间】: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,我也无法将时间设置为更高的值……因此我存储了会话变量在隐藏变量中不是很敏感并使用它..