Я тестирую сервер Azure со страницами, использующими функции Ajax (json)/Webmethod.
Некоторые из этих функций проверяют HttpContext.Current.User.Identity.IsAuthenticated
перед запуском кода. К сожалению, если пользователь зарегистрирован и страница не делает полный запрос обратной передачи на сервер, только те функции webmethods, которые проверяют HttpContext.Current.User.Identity.IsAuthenticated
, прекращают работать полностью через пару минут без каких-либо ошибок. Они даже не запускают блок кода else
(см. Ниже).
Я тестировал эти страницы на локальном сервере, и все работало нормально, как должно, даже после длительного периода бездействия. Ниже приведен пример веб-метода
[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();
}
Я вызываю веб-метод следующим образом:
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.
Фактически, когда веб-методы перестают работать, и я обновляю страницу, пользователь все еще входит в систему, и веб-методы начинают работать снова, но только пару минут, а затем повторное повторение.
Что пойдет не так?