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();
【问题讨论】:
你给Connection
和chatProxy
提供什么类型的?另外,url
包含什么?和const string url
的那个一样吗?
我分配了HubConnection connection
,IHubProxy chatProxy
,url是const string url ="http://localhost:8080"
首先,C# 区分大小写,所以你不能混淆Connection
和connection
。其次,url
应该是http://localhost:8080
是的,我的HubConnection Connection
,而url
在我的代码中是http://localhost:8080
。
您在集线器上调用 addMessage
客户端方法,但在客户端中侦听 SendMessage
。 (您的代码不起作用,尽管我不相信它会导致您的异常)
【参考方案1】:
您的 Hub 代理在完成连接之前正在调用 Signalr 管道。请在调试时放置一个事件处理程序以检查连接状态的确认。
hubConnection.StateChanged += (e) => Debug.WriteLine(e.NewState);
【讨论】:
以上是关于winform客户端无法启动连接的主要内容,如果未能解决你的问题,请参考以下文章