我读了这篇优秀教程:http://www.asp.net/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr。
然后我下载了NuGet示例包Microsoft.AspNet.SignalR.Sample 2.2.0
(https://www.nuget.org/packages/microsoft.aspnet.signalr.sample),然后我用vs 2015创建了一个带有索引页的新asp.net mvc 5项目。
我假设在app.MapSignalR()
方法中调用Startup.Configuration
。
和很多人一样,我收到了错误:ticker.client is undefined.
真正的问题是var ticker = $.connection.stockTicker
,始终为null,因为$.connection
没有定义stockTicker
属性 - 因为集线器无法实例化它。
有人知道这个错误的原因吗?
orignial教程是http://www.asp.net/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr我将示例项目zip托管到我的开放onedrive:https://onedrive.live.com/embed?cid=11357B31E08CCFEE&resid=11357B31E08CCFEE%21107&authkey=ALMOtmTFdCdsyV8
解决方案中的“SignalR.Sample”目录内容是集成在asp.net mvc 4/5/6项目中的基本模板。所以我将它集成在Views / Home / Index.cshtml页面中。 Js引用位于文件Views / Shared / _Layout.cshtml。
确切问题是var ticker = $ .connection.stockTicker为null(没有初始化与服务器的连接)。
如果你能帮助我,我会感谢你。
答案 0 :(得分:2)
是的,您在_Layout中添加了jQuery
和Stockticker
脚本,但您没有添加信号器/集线器。必须按照以下确切顺序加载脚本:
<script src="~/Scripts/jquery.signalR-2.2.0.js"></script>
<script src="~/signalr/hubs"></script>
<script src="~/Scripts/SignalR.StockTicker.js"></script>
答案 1 :(得分:0)
确保StockTicker.html中的JavaScript文件引用正确无误。也就是说,确保脚本标记中的jQuery版本(示例中为1.10.2)与项目的Scripts文件夹中的jQuery版本相同,并确保脚本标记中的SignalR版本为与项目的Scripts文件夹中的SignalR版本相同。如有必要,请更改脚本标记中的文件名。
答案 2 :(得分:0)
确保您有任何CPU作为您的活动解决方案平台。我将它切换到x64,这使得SignalR无法加载,因为它有一个不正确的平台。