Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 信号集线器未执行指定的javascript_C#_Javascript_Jquery_Asp.net_Signalr - Fatal编程技术网

C# 信号集线器未执行指定的javascript

C# 信号集线器未执行指定的javascript,c#,javascript,jquery,asp.net,signalr,C#,Javascript,Jquery,Asp.net,Signalr,我正在ASP.NETWeb应用程序项目中使用SignalR,但遇到了一些问题。我的目标是使站点管理端的任何更改都会导致一些GridView刷新。我计划通过发送一些javascript运行的信号来实现这一点,从而刷新包含GridView的更新面板 现在的问题是,我无法获取hub试图调用以在客户端执行的任何代码。我从jquery.SignalR.js文件中收到FireBug中的以下错误,但我不确定如何继续修复它: Firefox can't establish a connection to the

我正在ASP.NETWeb应用程序项目中使用SignalR,但遇到了一些问题。我的目标是使站点管理端的任何更改都会导致一些GridView刷新。我计划通过发送一些javascript运行的信号来实现这一点,从而刷新包含GridView的更新面板

现在的问题是,我无法获取hub试图调用以在客户端执行的任何代码。我从jquery.SignalR.js文件中收到FireBug中的以下错误,但我不确定如何继续修复它:

Firefox can't establish a connection to the server at ws://localhost:40068/signalr?data=[]&transport=webSockets&clientId=92e4f7b9-0118-4fd9-bb55-5f22338d6162.

(function(n,t){"use strict";if(typeof ...on=n.signalR=i})(window.jQuery,window)
抛出此错误后,它看起来仍然在设置连接,但没有执行通过集线器发送的javascript

我已在我的站点中设置了以下中心:

namespace testProject
{
    public class statusChanges : Hub
    {
        public void ServerChange()
        {
            Clients.serverChange();

        }
    }
}
我在管理部分的按钮点击事件中有以下代码。调试显示服务器正在运行此代码:

var clients = Hub.GetClients<statusChanges>();
clients.serverChange();
var clients=Hub.GetClients();
clients.serverChange();
最后,我在我的页面中有一段代码,它试图在收到确认其工作的信号时启动警报

<script type="text/javascript">
    $(function () {
        var statusChange = $.connection.statusChanges;
        statusChange.serverChange = function () {
            alert(8);
        };
        $.connection.hub.start();
    });
</script>

$(函数(){
var statusChange=$.connection.statusChanges;
statusChange.serverChange=函数(){
警觉(8);
};
$.connection.hub.start();
});

有人知道为什么不能运行这个程序,或者FireBug错误是什么意思吗?

FireBug中的错误是意料之中的。这是websocket连接失败,不要担心,因为信号器将退回到长轮询。服务器端有一个与客户端事件同名的方法。那不行

你想要这样的东西:

public Administration : Hub {
}
事件处理程序:

var clients = Hub.GetClients<Administration>();
clients.serverChange();
var clients=Hub.GetClients();
clients.serverChange();
Javascript:

<script type="text/javascript">
    $(function () {
        var administration= $.connection.administration;
        administration.serverChange = function () {
            alert(8);
        };
        $.connection.hub.start();
    });
</script>

$(函数(){
var管理=$.connection.administration;
administration.serverChange=函数(){
警觉(8);
};
$.connection.hub.start();
});

我有点困惑,serverChange javascript函数是否与导致回发的按钮位于同一页面上?是否使用浏览器的两个实例进行测试?firebug错误是一个非问题,正如您正确指出的那样,connect使用长轮询而不是web sockets afaik进行设置;引发事件的管理员和应获取警报的查看器。我在两个不同的浏览器中查看它。HttpContext行实际上只是放在那里测试它是否在执行该功能。我意识到这是垃圾,打算把它拿出来;我只是忘了在发布代码之前把它拿出来。不过我会试试你的答案。如果我用这种方式编写javascript,看起来我根本不需要hub中的任何东西?是的,在这种情况下,您只需要hub来生成客户端代理($.connection.{hubname})。我目前在本地机器上面临着完全相同的问题(即使SignalR仍然处理错误)。var clients=Hub.GetClients();clients.serverChange();您的示例的一部分-这是怎么回事?我使用的是相同类型的脚本和文件上载,实际上是从服务器上载到另一个服务器。所以只需要服务器事件。而且似乎也在以同样的方式失败。客户端无法看到进度条移动。它使用serverChange方法根据服务器进度进行移动。长时间投票有多长时间?