当WCF遭遇An existing connection was forcibly closed by the remote host
昨天,在博客园个人主页招聘页面遇到一个奇怪的WCF问题,错误信息如下:
An existing connection was forcibly closed by the remote host
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.Exception Details: System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
Stack Trace:
[SocketException (0x2746): An existing connection was forcibly closed by the remote host] |
这个页面的职位信息是通过调用招聘频道的WCF服务获取的。
一开始以为是WCF的配置问题,检查之后没发现问题。
在开发机器上测试,没有出现这个问题,开发机器与服务器的主要差别就是职位信息数据不一样,问题可能出在WCF客户端与服务器之间传递的职位信息数据,于是将解决问题的焦点锁定于此。
该WCF服务返回的是职位信息列表-List<JobOfferInfo>,JobOfferInfo包含有企业信息-EnterpriseInfo。
为了找到哪个属性值引起这个问题,对返回的职位信息列表,我们逐个地将JobOfferInfo的属性设置为空值并测试...
终于发现是EnterpriseInfo的一个枚举属性值引起的,该枚举属性是CompanySize,枚举类型定义是:
[Flags()]
public enum CompanySize
{
NoSet = 0,
Micro = 1,
Small = 2,
Medium = 4,
Big = 8,
Giant = 16
}
public enum CompanySize
{
NoSet = 0,
Micro = 1,
Small = 2,
Medium = 4,
Big = 8,
Giant = 16
}
当这个属性值是-1时,就会引发WCF出现"An existing connection was forcibly closed by the remote host"错误。
当然, CompanySize的值不应该出现-1,这是一个Bug引起的,但WCF的这个错误信息实在让人费解。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
2007-11-10 FireFox,爱死你了
2006-11-10 欢迎一滴水加入博客园工作
2005-11-10 [公告]积分算法问题改正