100分求使用SuperSocket端口被关闭的问题

fire_fire_fire 2015-11-06 09:52:12
我在一个web项目中使用了SuperSocket.dll,web端是socket服务端,所有连接到这个web项目的都是socket客户端。把web项目挂在IIS下,给它分配了应用程序池,网站一直都能正常运行,里面的socket连接刚开始的时候是好的,所有客户端都能连上,但运行了一段时间后,服务端的socket就自动断了,客户端再次尝试重连的时候就报:由于目标计算机积极拒绝,无法连接。需要回收一下应用程序池才能又正常,服务器是2008的系统,防火墙没有开启,杀毒软件都没有安装。
请问是什么原因导致的,应该如何解决?谢谢
...全文
434 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程的风 2018-04-02
  • 打赏
  • 举报
回复
这个应该是IIS的自动清理机制导致的,,无解
fire_fire_fire 2015-11-14
  • 打赏
  • 举报
回复
感谢两位的回答,我再想想其他办法或干脆做成winform程序或服务吧。谢谢
fire_fire_fire 2015-11-06
  • 打赏
  • 举报
回复
引用 1 楼 wyd1520 的回复:
被回收了呗,你要把Socket做成静态的,不能被回收的,如果被回收了,你要自动重启Socket。。。
我的socket是在Global文件的Application_Start方法里面启动的,并且启动后有定时对当前所有的连接发送心跳包,这样也就是说我的socket时时都是在运行状态,不应该有长时间不动被iis回收的情况才对啊。 就算被iis回收了,应该我只要一访问网站就会被开启,但现在的情况是:服务端socket被端口被关闭后,我打开网站,网站能正常运行,但是socket没有被开启,一定要回收一下应用程序池才行。 求解~
本拉灯 2015-11-06
  • 打赏
  • 举报
回复
被回收了呗,你要把Socket做成静态的,不能被回收的,如果被回收了,你要自动重启Socket。。。
  • 打赏
  • 举报
回复
“运行了一段时间后”出现的问题,可能你所谓的 SuperSocket 自身的bug,服务线程崩溃、结束了。它不是开源的吗?你可以直接在你的系统中调用它的源代码来测试啊?! 应该刻意去重现问题、去测试它,用不着瞎猜原因。
本拉灯 2015-11-06
  • 打赏
  • 举报
回复
引用 2 楼 fire_fire_fire 的回复:
[quote=引用 1 楼 wyd1520 的回复:] 被回收了呗,你要把Socket做成静态的,不能被回收的,如果被回收了,你要自动重启Socket。。。
我的socket是在Global文件的Application_Start方法里面启动的,并且启动后有定时对当前所有的连接发送心跳包,这样也就是说我的socket时时都是在运行状态,不应该有长时间不动被iis回收的情况才对啊。 就算被iis回收了,应该我只要一访问网站就会被开启,但现在的情况是:服务端socket被端口被关闭后,我打开网站,网站能正常运行,但是socket没有被开启,一定要回收一下应用程序池才行。 求解~[/quote] 你弄个静态变量了没。要是没有肯定回收了,SOcket写网页上本来就是蛋疼。。会让人模不着门路,之前我也写Socket放IIS上跑,也出现你这样,没招,不过我同事也是同样的方法写在IIS里跑,他的机子就没事,我就觉的怪,,可能IIS要配置什么吧 我的方案是把Socket写成服务省了不少的事。。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧