【发布时间】:2011-11-25 08:47:10
【问题描述】:
我的 Azure Web 角色使用 Ajax 调用将工作委托给辅助角色的函数(在 default.aspx.cs 中)。工作角色可能需要 30-40 分钟,具体取决于用户选择的输入文件。如果工作角色快速返回结果,则它会被 webrole 接收并正确显示在网页上。如果需要很长时间,webrole 仍会收到结果(尝试打印以进行跟踪),但网页上不会显示任何内容。
我觉得有某种超时会破坏页面上的 ajax 代码和 webrole 之间的连接。
代码如下:
<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>
【问题讨论】: