C# 信号客户端未定义
我有一个前端代码,用于在sql表中更新后立即更新表。 但是我找不到解决这个问题的方法 未捕获的TypeError:无法读取未定义的属性“client”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();
$(函数(){
//动态创建的代理
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>