C# 信号客户端未定义

C# 信号客户端未定义,c#,javascript,asp.net,signalr,C#,Javascript,Asp.net,Signalr,我有一个前端代码,用于在sql表中更新后立即更新表。 但是我找不到解决这个问题的方法 未捕获的TypeError:无法读取未定义的属性“client” $(函数(){ //动态创建的代理 var job=$.connection.DataHub; 控制台日志(作业); //在作业中心上声明一个函数,以便服务器可以调用它 job.client.displayStatus=函数(){ getData(); }; //启动连接 $.connection.hub.start(); getData();

我有一个前端代码,用于在sql表中更新后立即更新表。 但是我找不到解决这个问题的方法

未捕获的TypeError:无法读取未定义的属性“client”


$(函数(){
//动态创建的代理
var job=$.connection.DataHub;
控制台日志(作业);
//在作业中心上声明一个函数,以便服务器可以调用它
job.client.displayStatus=函数(){
getData();
};
//启动连接
$.connection.hub.start();
getData();
});
函数getData(){
变量$tbl=$(“#tblJobInfo”);
$.ajax({
url:“../api/values”,
键入:“GET”,
数据类型:“json”,
成功:功能(数据){
如果(data.length>0){
$tbl.empty();
$tbl.append('IDTitulo/tr>');
var行=[];
对于(变量i=0;i

如何解决这个问题?

我想问题是您没有将中心的名称更改为camel case。见下文:

 var job = $.connection.dataHub;
如果使用HubName属性,则JavaScript客户端上的camel大小写不会发生名称更改:

[HubName("DataHub")]
public class DataHub: Hub
此外,如果您使用的是ASP.NET MVC 4或5 Razor视图,请在代理文件引用中使用波浪号引用应用程序根:

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

我们遇到了相同的错误,但在我们的案例中,我们在Windows Server 2008 IIS 7上部署了一个(并且没有错误),在Windows Server IIS 8上部署了另一个(相同的应用程序,相同的代码)(引发了与原始海报相同的错误)

我们的解决方案是在IIS 8上部署时,修改web.config并注释掉信号器/集线器位置部分中的“system.webServer”部分

(注意system.webServer已注释)


这是原始版本,可在IIS 7上运行,但在IIS 8上失败:

(注意system.webServer未注释)


我现在这样做了,但问题是一样的
<script src="~/signalr/hubs"></script>
<location path="signalr/hubs"> 
    <system.web> 
        <authorization> 
            <allow users="*"/> 
        </authorization> 
    </system.web> 
    <!--system.webServer> 
        <security> 
            <authorization> 
                <add accessType="Allow" users="*"/> 
            </authorization> 
        </security> 
    </system.webServer--> 
</location> 
<location path="signalr/hubs"> 
    <system.web> 
        <authorization> 
            <allow users="*"/> 
        </authorization> 
    </system.web> 
    <system.webServer> 
        <security> 
            <authorization> 
                <add accessType="Allow" users="*"/> 
            </authorization> 
        </security> 
    </system.webServer> 
</location>