我最近对SignalR感兴趣,但是无论多么简单,我都还没有生产出有效的服务器。
我已经关注了GitHub自我主持人documentation但我收到了一个令人讨厌的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
我在应用程序中没有收到任何异常/错误,所以我不确定它为什么会这样。
任何人都有这些问题的经验吗?或者也许可以引导我更好地记录这件事?
谢谢
答案 0 :(得分:2)
问题是您的Hub类是私有的。 只需将其更改为公开。
public class fooHub : Hub
{
public void DisplayTimeOnServer()
{
Console.WriteLine(DateTime.Now.ToString());
}
}
答案 1 :(得分:1)
您是否尝试在服务器上进行调试?
您在Hub中缺少一个功能/定义来通知您的客户:
Clients.All.addMessage(message);
其他我建议您查看以下资源:
SignalR的主页 - 教程:http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr
答案 2 :(得分:1)
为您的连接设置路由似乎存在任何问题。应用程序运行后,您应该可以转到/ signalr / hubs并查看有关集线器的详细信息。