Моя веб-роль Azure использует Ajax для вызова функции (в default.aspx.cs), которая делегирует работу рабочим ролям. Рабочие роли могут занимать до 30-40 минут в зависимости от выбранного пользователем входного файла. Если рабочие роли быстро возвращают результат, он получает веб-роль и правильно отображается на веб-странице. Если это займет много времени, результаты все равно будут получены веб-ролью (попытка печати отследить), но на веб-странице ничего не отобразится.
Я чувствую, что есть какое-то время, которое убивает связь между кодом ajax на странице и веб-ролью.
Код выглядит так:
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#btnSubmit").click(function () {
var params = '{ map1 : "' + document.getElementById('<%=ddlMap1.ClientID %>').value + '",' +
'map2 : "' + document.getElementById('<%=ddlMap2.ClientID %>').value + '",' +
'op : "' + document.getElementById('<%=ddlOperator.ClientID %>').value + '"}';
$('#spinner').show();
$('#results').text('');
$.ajax({
type: "POST",
url: "Default.aspx/Overlay",
data: params,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var dmsg = '';
if (msg == null) {
dmsg = 'null';
} else {
dmsg = msg.d;
}
$('#spinner').hide();
$('#results').text(dmsg);
},
error: function (error) {
$('#results').text('');
}
});
});
});
</script>