无法在winform客户端中启动连接

时间:2015-08-21 07:27:39

标签: c# winforms signalr

我使用signalr来实现聊天应用程序 但是,我收到以下错误:

  

`类型的例外   'Microsoft.AspNet.SignalR.Client.HttpClientException'

     

发生在mscorlib.dll中,但未在用户代码中处理

     

其他信息:StatusCode:500,ReasonPhrase:'内部   Server Error',版本:1.1,内容:System.Net.Http.StreamContent,   头:

     

{

     

日期:2015年8月21日星期五07:22:52 GMT

     

服务器:Microsoft-HTTPAPI / 2.0

     

内容长度:0

     

}

我不知道为什么。我使用的是signalR 2.2.0版 这是我的中心

class ChatHub : Hub
{
    public void Send(string message)
    {
        Clients.All.addMessage(message);
    }
    public override Task OnConnected()
    {
        Console.WriteLine("Client connected: " + Context.ConnectionId);
        return base.OnConnected();
    }
}

这是我的Startup class

class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.UseCors(CorsOptions.AllowAll);
        app.MapSignalR();
    }
}

我的服务器程序

class Program
{
    const string url = "http://localhost:8080";
    static void Main(string[] args)
    {
        WebApp.Start(url);
        Console.WriteLine("Started server at " + url);
        Console.ReadLine();
    }
}

我在客户端winform中的功能

private async void AsyncConnect()
    {
        Connection = new HubConnection(url);
        chatProxy = Connection.CreateHubProxy("ChatHub");

        chatProxy.On<string>("addMessage", message =>
         txtMessageShow.Text += message + Environment.NewLine);

        await Connection.Start();
    }

1 个答案:

答案 0 :(得分:0)

您的Hub Proxy在完成连接之前调用Signalr管道。请在调试时放置事件处理程序以检查连接状态的确认。 hubConnection.StateChanged += (e) => { Debug.WriteLine(e.NewState)};