winform客户端无法启动连接

Posted

技术标签:

【中文标题】winform客户端无法启动连接【英文标题】:Unable to start connection in winform client 【发布时间】:2015-11-15 01:32:08 【问题描述】:

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

`类型异常 'Microsoft.AspNet.SignalR.Client.HttpClientException'

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

附加信息:StatusCode:500,ReasonPhrase:'Internal 服务器错误',版本:1.1,内容:System.Net.Http.StreamContent, 标题:

日期:格林威治标准时间 2015 年 8 月 21 日星期五 07:22:52

服务器: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();
    

【问题讨论】:

你给ConnectionchatProxy提供什么类型的?另外,url 包含什么?和const string url的那个一样吗? 我分配了HubConnection connectionIHubProxy chatProxy,url是const string url ="http://localhost:8080" 首先,C# 区分大小写,所以你不能混淆Connectionconnection。其次,url 应该是http://localhost:8080 是的,我的HubConnection Connection,而url 在我的代码中是http://localhost:8080 您在集线器上调用 addMessage 客户端方法,但在客户端中侦听 SendMessage。 (您的代码不起作用,尽管我不相信它会导致您的异常) 【参考方案1】:

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

【讨论】:

以上是关于winform客户端无法启动连接的主要内容,如果未能解决你的问题,请参考以下文章

winformconfig文件连服务器数据库启动很慢

socket.io javascript客户端在重新启动服务器后无法重新连接

Oracle监听启动无法连接

WinForm 几种获得应用程序启动路径的方法

C# WinForm程序中强制退出程序以及启动程序

Linux下的Oracle11g 监听和数据库实例均启动了但是客户端无法连接