2011-09-26 14 views
0

我的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> 

回答

2

天青负载均衡器在1分钟后终止任何不活动的连接。请参阅我对this question的解答,了解如何解决此问题。

+0

在我的情况下,连续保持活动状态,因为我不断检查队列存储(检查工作是否结束的轮询类型)。这只是覆盖功能的结果不会显示在标签中。我想知道是否有一个设置会导致代码中的标签无法访问。 – dinwal

+0

如果你实际上从你的ajax调用中得到了一个结果,并且它没有像你期望的那样设置这个值,那么这将是你如何设置该值的一个问题。如果没有看到您的HTML,很难说出问题所在,但我会尝试在按钮单击时设置#results的值以确保正确。 – knightpfhor