Здесь моя проблема немного странная, я встречаюсь с ней только на моем производственном сервере. В принципе, я теряю значения сеанса во втором аякс-вызове. Весь процесс, как пользователь, нажимает кнопку, чтобы инициировать процесс синхронизации, который включает в себя два удара ajax, сначала запрос на отправку и успешное завершение этого второго запроса на получение.сеанс очищен при втором вызове ajax
Мой код, как показано ниже:
JQuery Код:
//User clicks "SyncButton" to initiate sync process
$('#SyncButton').on('click', function (event) {
//Some UI Code
$.ajax({
type: 'POST',
beforeSend: startService, //startService has some UI code
url: "FirstAjaxURL",
data: null,
contentType: "application/json",
success: function (data) {
ServiceSuccess(data);
},
error: serviceError
});
});
function ServiceSuccess(data) {
var html = ''; //code to get html from data
$('#divSync').html(html);
if (!($('#delete').length > 0)) {
RenderBusinessGrid();
}
};
function RenderBusinessGrid() {
var allBusiness = "";
$.getJSON("SecondAjaxURL", function (data) {
//Some UI handling code
});
$('#divSyncDetails').height('400px');
}
MVC код:
[HttpPost]
public string FirstAjaxURL()
{
//make some DB hits
//fetch data
//create couple of zip files
EDIT 6 июля 2015
//Unzip a zip file in one of the sub-directories. This zip file contains multiple sub-directories and files.
EDIT 6 июля 2015
//save them in two separate folders in separate folders under root directory
/*LOGS SUGGEST ALL SESSION KEYS WERE AVAILABLE HERE*/
return "some string result";
}
public ActionResult SecondAjaxURL()
{
/*LOGS SUGGEST SESSION KEYS NOT AVAILABLE HERE*/
//do some DB operation
return jsonResult;
}
Что все, что я пытался до сих пор:
- Проверил настройки IIS для времени пула приложений рецикла, они, кажется, хорошо
- Тайм-аут сеанса устанавливается к большому значению, он не истекает, если я покидаю систему для простоя
- Подтвержденное отсутствие необработанного исключения при первом ударе ajax
- Tri ред сохранения архивных файлов вне структуры каталогов приложения
- Пробовал заменить $ .getJSON с $ .ajax (я знаю его глупо, чтобы попробовать это, но вы никогда не знаете ... :)
Примечание: В большинстве случаев сессии timeout во втором вызове ajax - самый первый раз, когда пользователь инициирует процесс синхронизации. Хотя мы наблюдали довольно часто случаи, когда это происходит второй или третий раз.
некоторые дополнительные детали: Я проверил журналы событий и обнаружил, что каждый раз, когда он выходит из ниже ошибки регистрируется в окне просмотра событий:
Код события: 4005 Event сообщение: Формы проверки подлинности не удалось для запроса. Причина: указанный билет недействителен.
Пожалуйста, предложите, что еще я мог бы попробовать/проверить, чтобы получить основную причину этой проблемы, ее прослушивание меня очень долго. Все указатели приветствуются.
Спасибо, Ravi
Является ли ваше приложение размещенным на нескольких серверах с загрузчиком нагрузки на картинке? – nikhil
Вы установили '' в свой web.config? –
squiroid
@nikhil: нет выделенного сервера без балансировки нагрузки или что-то в этом роде. Это просто простой SPA-центр на базе MVC. – TechnicalSmile