我正在使用使用Ajax(json)/Webmethod功能测试Azure服务器。
其中一些函数在运行代码之前会检查HttpContext.Current.User.Identity.IsAuthenticated
。不幸的是,如果用户已经登录且页面没有向服务器发出完整的postback请求,那么只有那些检查HttpContext.Current.User.Identity.IsAuthenticated
的WebMethod函数会在几分钟后完全停止运行,而且不会给出任何错误信息。它们甚至不运行else
代码块(如下所示)。
我已经在本地服务器上测试了这些页面,一切正常,即使长时间闲置也没有问题。这里是一个WebMethod的例子:
[WebMethod]
public static string serviceMenu(int IDservice)
{
StringBuilder SBphotoMenu = new StringBuilder();
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
// Do stuff
}
else
{
// Do other stuff
}
return SBphotoMenu.ToString();
}
我正在如下调用web方法:function serviceMenu(IDservice) {
$.ajax({
type: "POST",
url: "/UserControls/serviceMenu",
data: "{ IDservice: " + IDservice }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
// Do Stuff
}
})
}
只有在用户登录的情况下才会出现这种行为。如果用户未登录,则即使在Azure上,所有功能也能正常工作。
事实上,当Web方法停止运行并刷新页面时,用户仍然登录,并且Web方法再次开始运行,但仅持续几分钟,之后又出现相同的行为。
出了什么问题?
else
逻辑吗? - Martin Valentino