我的Azure Web角色使用Ajax调用将工作委托给辅助角色的函数(在default.aspx.cs中)。工人角色可能需要长达30-40分钟,具体取决于用户选择的输入文件。如果工作人员角色快速返回结果,则它将被网页接收并正确显示在网页上。如果花费很长时间,结果仍然被webrole收到(尝试打印以追踪),但网页上没有显示任何结果。Azure Web角色接收长时间过程的结果
我觉得有一段时间会杀死页面上的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>
在我的情况下,连续保持活动状态,因为我不断检查队列存储(检查工作是否结束的轮询类型)。这只是覆盖功能的结果不会显示在标签中。我想知道是否有一个设置会导致代码中的标签无法访问。 – dinwal
如果你实际上从你的ajax调用中得到了一个结果,并且它没有像你期望的那样设置这个值,那么这将是你如何设置该值的一个问题。如果没有看到您的HTML,很难说出问题所在,但我会尝试在按钮单击时设置#results的值以确保正确。 – knightpfhor