• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

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

fire_fire_fire 2015-11-06 09:52:12
我在一个web项目中使用了SuperSocket.dll,web端是socket服务端,所有连接到这个web项目的都是socket客户端。把web项目挂在IIS下,给它分配了应用程序池,网站一直都能正常运行,里面的socket连接刚开始的时候是好的,所有客户端都能连上,但运行了一段时间后,服务端的socket就自动断了,客户端再次尝试重连的时候就报:由于目标计算机积极拒绝,无法连接。需要回收一下应用程序池才能又正常,服务器是2008的系统,防火墙没有开启,杀毒软件都没有安装。
请问是什么原因导致的,应该如何解决?谢谢
...全文
265 点赞 收藏 6
写回复
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。。。
回复 点赞
以专业开发人员为伍 2015年11月06日
“运行了一段时间后”出现的问题,可能你所谓的 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写成服务省了不少的事。。
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告