红雪  

周末,公司的同事web站点 突然发生“xxx 提供服务的进程 Windows Process Activation Service 通信时出现严重错误”,错误现象为:

具体表现为,

站点部署在 win 2008 R2机器上面,google了下,解释如下:

Windows process activation service Windows进程激活服务Windows 进程激活服务通过删除对 HTTP 的依赖关系,可统一 Internet 信息服务 (IIS) 进程模型。通过使用非 HTTP 协议,以前只可用于 HTTP 应用程序的 IIS 的所有功能现在都可用于运行 Windows Communication Foundation (WCF) 服务的应用程序。IIS 7.0 还使用 Windows 进程激活服务通过 HTTP 实现基于消息的激活。WAS(Windows Process Activation Service)增强了对web服务和WCF服务的管理,提供了新的图形界面和命令行工具用于管理web应用程序。

 

  Windows进程激活服务是新的进程的Windows Server 2008的,这也是在Windows Vista中可用的激活机制。 它保留了熟悉的IIS 6.0进程模型(应用程序池和基于消息的进程激活)和主机功能(如快速失败保护,健康监测和回收),但它取消了从激活的HTTP架构的依赖。 IIS 7.0使用HTTP上实现了基于消息的激活。 WCF的附加组件还插入是提供着那个WCF支持,如TCP,MSMQ时,和命名管道等协议基于消息的激活。 这允许应用程序使用的通信协议,如使用过程中回收的IIS功能,快速失败保护,普通的配置系统,只提供基于HTTP的应用程序。这个托管选项要求是正确配置,但它不要求你写的应用程序的任何部分托管代码

网上的解决办法也有,但不管用,之前怀疑是系统问题,最后把这个问题web站点移植到其他服务器上去,站点运行几分钟后,自动停止,还是同样的错误,所以基本排除系统问题,应该是代码问题了

最后把站点移植到win 2003上去,看到了错误详细异常 “StackOverflowException”,更加肯定是代码问题,最后排查代码下发现 “死循环”了,Ok,修复这个“死循环”后站点运行正常。至于在  win 2008上为什么没有出现“StackOverflowException”异常信息,这个还待搜索下,如果有朋友遇到同样的错误,请排查下代码是否有问题。

posted on 2012-12-07 11:53  战锋  阅读(3904)  评论(0编辑  收藏  举报