我正在使用使用Ajax(json)/ Webmethod函數的頁面測試Azure服務器。Webmethods with HttpContext.Current.User.Identity.IsAuthenticated在Azure上處於非活動狀態後停止工作
其中一些功能在運行代碼之前檢查HttpContext.Current.User.Identity.IsAuthenticated
。不幸的是,如果用戶登錄並且該頁面沒有向服務器發送完整的回發請求,則只有那些檢查HttpContext.Current.User.Identity.IsAuthenticated
幾秒鐘後才能完全停止運行的web方法功能不會給出任何錯誤。他們甚至不運行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();
}
我打電話的WebMethod如下的例子:
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上,所有功能也能正常工作。
事實上,當webmethods停止運行並刷新頁面時,用戶仍然登錄並且webmethods會再次開始運行,但只有幾分鐘,然後再次發生相同的行爲。
怎麼回事?
是否有任何特殊的原因,你把用戶身份驗證的方法,而不是在Global.asax或一些基類? –
我正在檢查用戶是否已通過身份驗證,以便在這些webmethods中相應地創建字符串 – Gloria
因此,停止工作意味着什麼?你的意思是,當身份驗證停止工作時,它總是進入''''''''邏輯。 –