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

解决方案 »

  1.   

    Windows服务,不外乎调用:OnStart,OnStop,来进行启动和关闭
    如果你采用 第二个方案,那就在catch中执行OnStop(...),然后要么通知其它进程启动这个服务,
    要么OnStart()
      

  2.   

    在系统日志中可以查看到异常信息:
    Faulting application *.exe, version 1.1.4448.17281, stamp 4f556a02, faulting module kernel32.dll, version 5.2.3790.3959, stamp 45d72003, debug? 0, fault address 0x0000bee7.
    这种异常在托管代码中捕获不到,所以在OnStart()或OnStop()方法中不能进行异常处理
      

  3.   

    的却是个问题,这里需要kill一下。
      

  4.   

    SetSockopt,可是设置为REUSE,端口可以设置为重用