2016-08-17 61 views
2

在我的应用程序中,导航到另一个页面时发生以下控制台错误。连接尚未完全初始化

Uncaught Error: SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.

在布局页面中,脚本按以下顺序排列。

@Styles.Render("~/Content/themes/base/jqueryUi") 
@Styles.Render("~/Content/customCss") 
@Scripts.Render("~/Scripts/jQuery") 
@Scripts.Render("~/Scripts/customScripts") 
<script src="/signalr/hubs"></script> 


    var progressHub = $.connection.parallelProcessing; 
var flagDownload = true; 
$(function() { 
    progressHub.client.updateProgresssBar = function(progressPercentage, downloadedSize, totalFileSize) { 
     debugger 
     downloadProgress("", "", ""); 
     $("#downloading-progress").dialog("open"); 
     var progressObj = $("#progressBar").data("ejProgressBar"); 
     progressObj.option("text", progressPercentage + " %"); 
     progressObj.option("percentage", progressPercentage); 
     $(".received").html("(" + downloadedSize + " "); 
     $(".total-size").html("of " + totalFileSize + ")"); 
     flagDownload = true; 
     if (progressPercentage == 100) 
      $("#downloading-progress").dialog("close"); 
    }; 

    progressHub.client.noNetConnection = function() { 

     if (flagDownload) { 
      flagDownload = false; 
      showalertdownload("@Message.Nointernetconnection"); 
     } 

    }; 
    progressHub.client.closeProgressDialog = function() { 

     $("#downloading-progress").dialog("close"); 
     enableEvents(); 
    }; 

    $.connection.hub.start().done(function() { 

    }); 


}); 

function updateConnectionID() { 
    progressHub.server.updateConnectionID(); 

} 

请让我知道是否有任何解决方案来解决此问题。提前感谢。

+0

找到你能给你的JavaScript代码调用你的连接/集线器的休息吗? – bsoulier

回答

1

根据你的错误信息我的回答,似乎你正试图访问您的连接或集线器,而无需等待它被初始化。

ASP.NET SignalR Github wiki摘自:

// This callback will only run once 
connection.start().done(function() { 
    console.log("connection started!"); 
}); 

更完整和详细的例子要在ASP.NET website

+0

嗨bsoulier,感谢您的更新。你能告诉我如何检查连接是否已经初始化,或者如何在启动()之前在布局页面中初始化它? – mRhNs13

+0

查看给定的链接,你需要在'done'中使用的函数内部将调用完成的内容封装为上面的'console.log'行。 – bsoulier

+0

嘿Shivani,是否帮助你以某种方式? – bsoulier