我做了一个Webservice其中还包含了一个Socket的服务端.通过Webservice提供的方法可以将消息发送到Socekt服务端然后由Socket服务端转发给下面的所有客户端.另外还做了一个页面来启动这个Socket服务端,但是每次启动几小时后拿个Socket服务端就自动关闭了下面的客户端就连不上了,我想了是不是在IIS中这个Socket对象不能永久的存在,然后我又修改了连接超时的时间但还是不行,请教各位高手还有没有其他的办法在IIS中保持Socket监听对象永久存在不被销毁.

解决方案 »

  1.   

    你得把Socket对象声明为全局静态变量,这样就永远保留的。
      

  2.   

    把这样的东西设计在IIS工作进程里面运行肯定是不好的。IIS会定期清理工作进程,不工作很久或者工作了很久的进程都会重启。建议还是设计成Windows Service或者别的类型。
      

  3.   

    可以定义个Timer,设置时间间隔,隔一段时间启动服务一次。
      

  4.   

    我也碰到了类似的问题,
    iis 本身就是处理 socket 监听的. 你在其中再实现一个, 同时iis 的定期回收处理机制,会让iis内运行的 socket 代码会出现各种各样的怪异问题.