自托管SignalR示例不起作用

时间:2013-05-22 19:26:03

标签: signalr

我正试图让SignalR self-hosted example正常工作。

我创建一个新的控制台应用程序,安装3个软件包并添加代码here,并运行应用程序而没有任何错误。

在运行之前,netstat在8080上没有显示任何内容,而在运行时有一些东西在8080上监听。

当我去http://localhost:8080/signalr/hubs时,我得到“拒绝连接”

更新:从here运行演示项目抛出No connection could be made because the target machine actively refused it 127.0.0.1:8080(当然,成功启动服务器之后)。

似乎问题出在Owin主机上,但我从未使用它,所以我不知道如何调试它。

4 个答案:

答案 0 :(得分:3)

确保您保持网络应用程序的活跃。

原始示例代码如下......

        using (WebApp.Start<SignalrStartUp>(SignalrStrings.SignalrBaseUrl))
        {
            while(true)
            {
                Task.Delay(TimeSpan.FromSeconds(1)).Wait();
            }
        };

答案 1 :(得分:1)

我也遇到过这个问题。我在这种SignalR代码中看到的大多数例子都使用&#34;使用&#34;用于启动WebApp的关键字。这会导致WebApp在超出范围时被销毁。在某些示例中,此时已完成所有必要的工作,但如果您尝试连接到SignalR服务器,则需要将此对象保持在活动范围内。

而不是像这样的代码...

using (WebApp.Start(url))
{
   // Example SignalR usage here
}

尝试更类似于以下内容的内容......

private readonly IDisposable webApp; // Declared in your class fields

然后

webApp = WebApp.Start(url);

确保在完成后再处理该物体。

答案 2 :(得分:0)

确保您允许连接到同一台机器;尝试yourmachinename,localhost和127.0.0.1。同时以管理员身份启动应用程序(使用ctrl-shift最简单) 然后,当您运行它时 - 查看如何设置您的用户以允许网络访问。

如果您使用的是Visual Studio,则可能会遇到不存在的js文件。将相应的js文件设置为“如果更新则复制”。

答案 3 :(得分:-2)

您需要在网络应用的根目录中创建名为signalR的文件夹,以便signalR可以映射到的位置。