日期:2014-05-18  浏览次数:20808 次

C#监听端口的windows服务异常崩溃的处理...
这个问题困扰了很久,有两种处理方案:
1.在启动服务的入口捕获所有的未处理异常;
  由于客户端的连接数增多,客户操作并发量增大,服务还是会崩溃,异常是捕获不到的
2.在服务异常崩溃后,通知其他程序重新启动该服务;
  在服务重新启动时,会报“通常每个套接字地址(协议/网络地址/端口)只允许使用一次”的错误

还有没有更好的解决方案……

------解决方案--------------------
看异常应该是系统没有可用端口了

还是你程序的多线程处理有问题
------解决方案--------------------
探讨

引用:

看异常应该是系统没有可用端口了

还是你程序的多线程处理有问题

就是由于该服务崩溃后没有释放端口,再重新启动后才会报出端口被占用的异常

------解决方案--------------------
服务启动监听。。端口不会被强占。比如你端口是8080.其他程序使用这个端口的时候。是可以强占的。。所以服务会报错。
如果做的是窗体,其他程序就强占不了。。
我也很奇怪这个问题。。
------解决方案--------------------
SetSockopt,可是设置为REUSE,端口可以设置为重用