httplistener进程卡死问题
手头有一个项目,由一个WinService,几个个Winform和控制台程序组成,windows服务上使用httpListener架设了一个服务器,几个Winform和控制台之间的通讯通过httpWebRequest和httpWebResponse发送请求和接收回复。总体的运行情况都比较正常。
但是,在某些机器上,偶尔会出现winform和控制台程序一直卡死在任务进程中,强制结束都无法结束的情况。排查之后发现,是Service里头的httpListener卡死导致,而且,当出现卡死的情况下,哪怕我另外再写一个测试用的程序,使用其他端口,调用HttpListerner.Start(),同样会导致测试程序进程卡死(表现为UI界面崩溃,任务管理器中进程存在,无法强制结束)。
想问一下,
1、这种问题该如何继续排查定位错误?
2、可能的解决思路会有哪些?
弃用HttpListener改用Socket或者是Pipe的成本太高了,大概需要重写约50个业务逻辑类,还包括整体的重新测试。
ps. 请不要告诉我httpListener.Start()是阻塞方法,要用后台线程执行,不能用UI线程执行这样的回答...
这种常识还是有一点的....