2015-08-30 28 views
0

我有一個使用SignalR的項目(使用https://gkulshrestha.wordpress.com/2014/05/02/signalr-with-sql-server-query-notification/的教程) 當我從visual studio運行它時,我的項目完美運行。但是,當我在服務器上運行它(在發佈它和IIS後),它不起作用。MVC在服務器/信號/集線器上不能正常工作

具體來說,我發現JS的某個部分沒有運行。 我有

@section Scripts{ 
    <script src="/Scripts/jquery.signalR-2.1.1.js"></script> 
    <!--Reference the autogenerated SignalR hub script. --> 
    <script src="/signalr/hubs"></script> 
    <script type="text/javascript"> 
     $(function() { 
      // Reference the auto-generated proxy for the hub. 
      alert(1); 
      var clientHub = $.connection.messageSender; 
      alert(5); 
      // Create a function that the hub can call back to display messages. 
      clientHub.client.broadcastMessage = function (message) { 
       // Add the message to page. 
       $('#messagecontainer').append('<li>' + message + '</li>'); 
      }; 
      alert(2); 
      $.connection.hub.start().done(function() { 
       alert("connection started") 
      }).fail(function (e) { 
       alert(e); 
      }); 
      alert(3); 

     }); 

    </script> 
} 

當通過visual studio運行這個,我打這裏所有的警報。當在服務器上運行它時(通過按瀏覽),我只會觸發警報(1),而沒有其他警報。

任何幫助,將不勝感激!謝謝!

我環顧四周,我懷疑它必須做我的信號/集線器參考。我試過SignalR /signalr/hubs 404 Not Found,但沒有運氣。

+1

是什麼的F12調試窗口告訴你嗎? –

回答

2

嘗試包括靜態資源時使用助手:

<script src="@Url.Content("~/Scripts/jquery.signalR-2.1.1.js")"></script> 

和:

<script src="@Url.Content("~/signalr/hubs")"></script> 

這會考慮到您的應用程序可能會在IIS中運行的虛擬目錄。此外,如果你使用的是最新的剃鬚刀,你可以只是~前綴,表示相對路徑:

<script src="~/Scripts/jquery.signalR-2.1.1.js"></script> 

和:

<script src="~/signalr/hubs"></script> 
+0

正在做而不是非〜版本爲我工作! 簡單的修改就解決了所有這些其他方法的疑難解答。 –

+0

@CliffordBernett,如果你幫助你,請將答案標記爲已接受 – Andrei

相關問題