我正试图让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主机上,但我从未使用它,所以我不知道如何调试它。
答案 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可以映射到的位置。