2014-01-24 57 views
0

我成功地使用VS 2010(4.0框架)和SignalR版本1.1.3我的本地主機上運行的應用程序SignalR不是對象按以下鏈接:「客戶」爲空或SignalR

http://www.asp.net/signalr/overview/signalr-1x/getting-started/tutorial-getting-started-with-signalr

但是當我將IIS服務器上部署該Web應用程序:

它拋出JavaScript錯誤的

「客戶」爲空或不是對象

我應該檢查什麼..?

TIA

+0

您應該再次檢查Framework版本。 Asp.Net明確指出:「SignalR 2.0只支持.NET Famework 4.5。」 – Marco

+0

嘿,但是當我在我的電腦上運行它時,它的工作很好... – Akash

回答

0

發生這種情況是由於未正確包含動態信號集線器文件。在你參考的樣本中,他們正在做:

<script src="/signalr/hubs"></script> 

這在本地是非常好的。但是,如果您要將該應用程序部署到IIS,則需要確保您的應用程序在ROOT中運行(如果您是服務器的話)。

我猜你在部署到IIS時,會將其託管在像localhost/mysignalrapp/YOUR_STUFF這樣的端點上。如果是這種情況,那麼/ signalr/hubs包含將不起作用。

假設你的HTML文件是在根目錄,如果你的項目中嘗試改變包括到:

<script src="signalr/hubs"></script> 

這將使您的應用程序正確地找到signalr端點。如果您碰巧將文件夾中的HTML文件不在根目錄下,請相應地調整路徑。

+0

它的工作! 非常感謝!解決方案非常簡單,需要一些思考,但卻感到困惑!它也適用於我的LocalHost ... :) – Akash

0

你有一個腳本引用在客戶端庫和~/signalR/hubs

+0

是的!還有一些原因,我也安裝了JSOn2軟件包。通過客戶端庫,U是指JQuery文件和SignalR js文件? – Akash

+0

應用程序相對路徑(〜/)不適用於純HTML文件。 –

+0

Scripts.Render(「〜/ signalr/hubs」) – Anders