javascript – SignalR – 无法获取未定义或空引用的属性“客户端”

前端之家收集整理的这篇文章主要介绍了javascript – SignalR – 无法获取未定义或空引用的属性“客户端”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在现有Web应用程序中使用SignalR时遇到问题.我收到javaruntime异常“无法获取未定义或空引用的属性’客户端’,因为当我尝试从$.connection对象检索我的集线器时,它返回null.

在发布我的代码之前,我想提供一些背景和一些我已经尝试过的东西:
  – 如果我在本地运行项目,一切正常.只有当我将项目部署到IIS位置时才会出现问题.
  – 我已经验证我的集线器名称是正确的驼峰套.同样,它在本地工作正常,并且只有在我将项目部署到IIS后才会抛出错误.
  – 我已经确认我的所有javascript都已成功加载. JQuery库只引用一次,并且加载正常. signalR javascript和动态创建的信号器/集线器也是如此.
  – 如果我创建一个新项目,并运行与在现有Web应用程序下作为Web应用程序运行的新Web应用程序相同的代码,一切正常(正在使用相同的代码,仅在新项目中).

任何人都对问题是什么有任何想法?

枢纽代码

Imports Microsoft.AspNet.SignalR

Public Class TestHub
    Inherits Hub

    Public Sub Connect()
        Try
            Clients.Caller.onConnect(Context.ConnectionId)
        Catch ex As Exception
            LogMessage("ERROR Connecting to Hub","ERROR")
        End Try
    End Sub

End Class

网页代码
    

Global.asax代码

Imports System.Web.Routing
Imports Microsoft.AspNet.SignalR

Public Class Global_asax
  Inherits System.Web.HttpApplication
    Sub Application_Start(ByVal sender As Object,ByVal e As EventArgs)
    ' Fires when the application is started
    Try
    ' Register the default hubs route: ~/signalr/hubs
    RouteTable.Routes.MapHubs()
    Catch ex As Exception
    LogMessage("ERROR initializing SignalR: " & ex.Message,"ERROR")
    End Try
End Sub
...

所以现在,当我转到我的页面SignalRTest.aspx时,thub.client.onConnected = …行引发了一个javascript错误:“无法获取未定义或空引用的属性’客户’”

有谁知道可能导致这种情况的原因?
谢谢.

[编辑] – 将工作信号器/ hubs.js文件与非工作文件进行比较后,我发现以下部分缺失:

proxies.testHub= this.createHubProxy('testHub'); 
    proxies.testHub.client = { };
    proxies.testHub.server = {
        connect: function () {
            return proxies.transactionHub.invoke.apply(proxies.testHub,$.merge(["Connect"],$.makeArray(arguments)));
         }
    };

有关为什么这不会包含在signalr / hubs.js文件中的任何想法?我在Global.asax中调用MapHubs()…

谢谢!

[固定]
删除了目标Web应用程序的Bin文件夹,然后重新部署.仍然不确定有什么不同.所有.DLL都是一样的.它现在有效.奇.

最佳答案
从VS 2012发布到IIS 7.5后尝试调试以运行Web应用程序时遇到此错误.经过一些拔毛后,我意识到问题在于我在部署时没有更改jquery脚本和信号器路径.

解决此问题,我必须将虚拟目录名称(“TestingChat”)添加到jquery和signalr的脚本标记的路径中.

例如.由此:

猜你在找的jQuery相关文章