关键词:
【中文标题】传输了几条消息后,ASP.NET MVC 4.5 WebSocket 服务器失去连接【英文标题】:ASP.NET MVC 4.5 WebSocket server loses connection after a few messages have been transferred 【发布时间】:2014-01-29 13:12:04 【问题描述】:我刚刚开始使用 WebSockets 和 ASP.NET 并遇到了一个奇怪的问题。我正在构建一个非常原始的 ASP.NET 4.5 WebAPI 应用程序,它应该像这样用作回声服务器:
using Microsoft.Web.WebSockets;
// ...
namespace MyControllers
internal class EchoHandler : WebSocketHandler
public override void OnClose()
System.Diagnostics.Debug.Write("Close");
public override void OnError()
System.Diagnostics.Debug.Write("Error: " + this.Error.ToString());
public override void OnOpen()
System.Diagnostics.Debug.Write("Open");
public override void OnMessage(string message)
System.Diagnostics.Debug.Write("Message: " + message);
this.Send("Echo: " + message);
public class EchoController : ApiController
public HttpResponseMessage Get()
if (HttpContext.Current.IsWebSocketRequest)
HttpContext.Current.AcceptWebSocketRequest(new EchoHandler());
return Request.CreateResponse(HttpStatusCode.SwitchingProtocols);
else
return Request.CreateResponse(HttpStatusCode.BadRequest);
我正在使用用 C# 编写的 Windows 应用商店应用程序连接到此服务。相关代码如下所示:
class WebsocketTest
private MessageWebSocket webSocket;
private DataWriter messageWriter;
private async Task Connect()
var server = new Uri("ws://127.0.0.1:81/");
webSocket = new MessageWebSocket();
webSocket.Control.MessageType = SocketMessageType.Utf8;
webSocket.MessageReceived += messageWebSocket_MessageReceived;
webSocket.Closed += messageWebSocket_Closed;
await webSocket.ConnectAsync(server);
messageWebSocket = webSocket;
messageWriter = new DataWriter(webSocket.OutputStream);
private async Task Send(string message)
try
messageWriter.WriteString(message);
await messageWriter.StoreAsync();
catch (Exception ex)
var error = WebSocketError.GetStatus(ex.GetBaseException().HResult);
这在一段时间内运行良好,但是在来回发送任意数量的消息后,在服务器上调用 OnError() 并且我收到以下异常:“I/O 操作已中止,因为线程退出或应用程序请求”(似乎是“this.Send(...)”导致它)。如果我继续在客户端上发送内容,则在调用“dataWriter.StoreAsync()”时会收到“ConnectionAborted”错误。 错误每次都会发生,但在它发生之前需要不同数量的消息。使用更长的消息似乎可以加快这个过程。
为了测试,我还尝试使用普通的 AspNetWebSockets 而不是 WebSocketHandler,但结果相同。
有什么想法吗?
提前非常感谢, 启
【问题讨论】:
【参考方案1】:这是一个错误(由我报告):https://connect.microsoft.com/VisualStudio/feedbackdetail/view/976851/server-websocket-closed-abruptly-the-i-o-operation-has-been-aborted-because-of-either-a-thread-exit-or-an-application-request
很长一段时间以来,我一直试图找到一种解决方法,但没有成功。我正在使用HttpListener
,但症状是一样的。现在我已将实现更改为第三方库,问题似乎已经解决。
【讨论】:
如何使用 MVC3 ASP.NET 4.5 和 EF6 基于实体属性注释对 TextBoxFor 进行舍入
】如何使用MVC3ASP.NET4.5和EF6基于实体属性注释对TextBoxFor进行舍入【英文标题】:HowtogetTextBoxFortoround,basedonEntityPropertyAnnotations,usingMVC3ASP.NET4.5andEF6【发布时间】:2015-05-2721:55:34【问题描述】:我正在使用MVC3、ASP.NET4.5、EF6、SQLServer2... 查看详情
ASP.Net 4.5 注销/登录失败
】ASP.Net4.5注销/登录失败【英文标题】:ASP.Net4.5logout/loginfail【发布时间】:2015-05-0817:28:52【问题描述】:我正在使用.Net身份验证和最新的VisualStudio13构建一个ASP.NET4.5应用程序(不是MVC另一个大故事)。昨天我做了一些包管理器... 查看详情
ASP.NET MVC Razor 日期时间验证错误消息
】ASP.NETMVCRazor日期时间验证错误消息【英文标题】:ASP.NETMVCRazorDateTimeValidationErrorMessage【发布时间】:2021-12-1419:29:00【问题描述】:所以adjournHearingInfo的newHearingDate当我没有填写为错误信息时值\'\'无效。"值为"1/1/000112:00:00AM"我无... 查看详情
ASP .NET MVC - 向 ajax 调用返回异常消息
】ASP.NETMVC-向ajax调用返回异常消息【英文标题】:ASP.NETMVC-returnExceptionmessagetoajaxcall【发布时间】:2019-12-0404:21:26【问题描述】:我的ajax调用:$.ajax(url:\'./Orders/SaveOrder\',type:"POST",data:JSON.stringify(data),dataType:"JSON",contentType:"app 查看详情
ASP.Net MVC:如何自定义验证消息显示
】ASP.NetMVC:如何自定义验证消息显示【英文标题】:ASP.NetMVC:Howtocustomizevalidationmessageshowing【发布时间】:2016-04-2022:40:47【问题描述】:下面是我在for循环中生成html表并绑定文本框和下拉列表的代码。还使用jqueryunobtrusivelibrary来... 查看详情
ASP.NET MVC 2 + jQuery 灯箱 + 登录
...)转换为模态登录对话框系统,例如Digg中的那个。搜索了几个小时后,我找到的最接近的教程是:http://www.weirdlover.com/2010/0 查看详情
XSP 可以运行 ASP.NET 4.5 吗?
】XSP可以运行ASP.NET4.5吗?【英文标题】:CanXSPrunASP.NET4.5?【发布时间】:2013-12-1705:28:22【问题描述】:我几天来一直在尝试在Mono下启动MVC5(取决于.NET4.5),但没有成功。配置干净安装最新的Lubuntu没有以前的XSP/Mono从最新的git源... 查看详情
ASP.NET 4.5 尚未在 Web 服务器上注册
】ASP.NET4.5尚未在Web服务器上注册【英文标题】:ASP.NET4.5hasnotbeenregisteredontheWebserver【发布时间】:2012-11-2419:23:32【问题描述】:在我的Win7开发机器中,为了使用SQLExpress实例而不是默认安装的localDB。我在MVC4项目属性页面(Web选... 查看详情
AJAX 回调未显示成功消息 - ASP.NET MVC C#
】AJAX回调未显示成功消息-ASP.NETMVCC#【英文标题】:AJAXCallbackNotShowingSuccessMessage-ASP.NETMVCC#【发布时间】:2021-12-2709:53:42【问题描述】:我的JavaScript中有一些AJAX代码没有显示任何成功或失败警报。functionAttemptHouseViewingAppointment(hous... 查看详情
无法覆盖 Kendo Grid 过滤器消息 (ASP.NET MVC)
】无法覆盖KendoGrid过滤器消息(ASP.NETMVC)【英文标题】:CannotoverrideKendoGridfiltermessages(ASP.NETMVC)【发布时间】:2014-12-2011:16:42【问题描述】:我有KendoGrid过滤器消息被覆盖(或者至少我想要一个):(...).Scrollable().Filterable(f=>f.Messag... 查看详情
ASP.NET 4.5 Web API 2.0,JWT 消息处理程序将状态 0 返回到 Angular 7 HTTP 拦截器
】ASP.NET4.5WebAPI2.0,JWT消息处理程序将状态0返回到Angular7HTTP拦截器【英文标题】:ASP.NET4.5WebAPI2.0,JWTMessageHandlerReturnsStatus0toAngular7HTTPInterceptors【发布时间】:2019-10-0803:21:46【问题描述】:提前致谢。实际上,我想使用HTTP拦截器在A... 查看详情
将 Twitter 引导验证样式和消息应用于 ASP.NET MVC 验证
】将Twitter引导验证样式和消息应用于ASP.NETMVC验证【英文标题】:ApplyTwitterBootstrapValidationStyleandMessagetoASP.NETMVCvalidation【发布时间】:2012-07-1303:57:51【问题描述】:如何集成ASP.NETMVC不显眼的验证和TwitterBootstrap?我想适当地拥有所... 查看详情
如何在 ASP.Net MVC 中实现视频文件流式传输?
】如何在ASP.NetMVC中实现视频文件流式传输?【英文标题】:HowtoimplementvideofilestreaminginASP.NetMVC?【发布时间】:2017-07-0714:06:51【问题描述】:我想实现简单的视频文件流。有我的API控制器:[HttpGet][Route("api/VideoContent")]publicHttpRespons... 查看详情
使用谷歌云消息在 Asp.net Webform 或 mvc 中推送通知
】使用谷歌云消息在Asp.netWebform或mvc中推送通知【英文标题】:PushNotificationinAsp.netWebformormvcusinggooglecloudmessaging【发布时间】:2016-10-2514:28:38【问题描述】:HowdoespushnotificationtechnologyworkonAndroid?我已阅读有关堆栈溢出的这篇文章,... 查看详情
为啥会收到奇怪的错误消息 asp.net mvc "elmah.mvc logging library"?
】为啥会收到奇怪的错误消息asp.netmvc"elmah.mvclogginglibrary"?【英文标题】:Whyreceiveweirderrormessagesasp.netmvc"elmah.mvclogginglibrary"?为什么会收到奇怪的错误消息asp.netmvc"elmah.mvclogginglibrary"?【发布时间】:2017-06-25... 查看详情
使用 Ajax.BeginForm Asp.Net MVC 向 jquery 验证显示消息
】使用Ajax.BeginFormAsp.NetMVC向jquery验证显示消息【英文标题】:ShowmessagetojqueryvalidationwithAjax.BeginFormAsp.NetMVC【发布时间】:2019-04-1020:30:36【问题描述】:我已经使用asp.netmvc中的Ajax.BeginForm测试了jqueryvalidate,虽然表单验证,如果表... 查看详情
如何将消息插入取决于会话值的视图。 ASP.NET MVC。最佳实践
】如何将消息插入取决于会话值的视图。ASP.NETMVC。最佳实践【英文标题】:HowtoInsertingmessageintoViewthatdependsonsessionvalue.ASP.NETMVC.Bestpractice【发布时间】:2010-06-0205:50:39【问题描述】:用户必须填写多步骤问卷网络表单,步骤消息... 查看详情
如何使用 jQuery 和 ASP.NET MVC 从 AJAX 调用返回错误消息?
】如何使用jQuery和ASP.NETMVC从AJAX调用返回错误消息?【英文标题】:HowdoyoureturnerrormessagesfromAJAXcallsusingjQueryandASP.NETMVC?【发布时间】:2010-09-2900:23:55【问题描述】:如果我有一个从jQuery.ajax调用中调用的ASP.NETMVC控制器操作,该操... 查看详情