信号自托管服务器500错误

本文关键字:错误 服务器 信号 | 更新日期: 2023-09-27 18:02:37

我最近对SignalR产生了兴趣,但还没有产生一个工作服务器,无论多么简单。

我遵循GitHub Self Host文档,但我收到一个讨厌的500错误。

我使用的代码如下(基本上是GitHub代码):
class Program
{
    static void Main(string[] args)
    {
        string host = "http://localhost:2804";
        
        using (WebApplication.Start<InitialConf>(host))
        {
            Console.WriteLine("Server started on {0}", host);
            Console.ReadKey();
        }
    }
}
class InitialConf
{
    public void Configuration(IAppBuilder appBuilder)
    {
        var config = new HubConfiguration
        {
            EnableCrossDomain = true
        };
        // Map to default /signalr route
        appBuilder.MapHubs(config);
    }
}
class fooHub : Hub
{
    public void DisplayTimeOnServer()
    {
        Console.WriteLine(DateTime.Now.ToString());
    }
}

浏览http://localhost:2804/signalr产生500错误:

HTTP/1.1 500 Internal Server Error
Content-Length: 0
Server: Microsoft-HTTPAPI/2.0

我在应用程序中没有收到异常/错误,所以我不确定为什么它会这样做。

有人遇到过这些问题吗?或者能帮我找到关于这件事的更好的文件?

谢谢

信号自托管服务器500错误

问题是您的Hub class是私有的。把它改成public。

public class fooHub : Hub
{
    public void DisplayTimeOnServer()
    {
        Console.WriteLine(DateTime.Now.ToString());
    }
}

您是否尝试在服务器上调试?

你在Hub中缺少一个函数/定义来通知你的客户:

Clients.All.addMessage(message);

除此之外,我建议您查看以下资源:

SignalR主页-教程:http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

Scott的介绍:http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx

为您的连接设置路由似乎有任何问题。应用程序运行后,您应该能够转到/signalr/hubs并查看有关hub的详细信息。