具有TCP端点的IIS托管WCF服务在应用程序池回收后停止

具有TCP端点的IIS托管WCF服务在应用程序池回收后停止,wcf,iis,azure,azure-web-roles,recycle,Wcf,Iis,Azure,Azure Web Roles,Recycle,我有一个IIS应用程序,它在Global.asax中托管TCP WCF服务。我使用该服务在Microsoft Azure中的角色之间进行跨角色通信。问题是WCF服务在应用程序池回收后停止工作(29小时)。之后,我的interrole请求开始失败 如何控制回收事件以使我的webroles保持活动状态。最好的解决方案是什么? 我尝试了自动启动功能,但没有成功。您应该在iis7.0中安装并使用Appfabric。它有一个可配置的自动启动功能 您如何在Global.asax中托管您的服务?你能提供一些代

我有一个IIS应用程序,它在Global.asax中托管TCP WCF服务。我使用该服务在Microsoft Azure中的角色之间进行跨角色通信。问题是WCF服务在应用程序池回收后停止工作(29小时)。之后,我的interrole请求开始失败

如何控制回收事件以使我的webroles保持活动状态。最好的解决方案是什么?
我尝试了自动启动功能,但没有成功。

您应该在iis7.0中安装并使用Appfabric。它有一个可配置的自动启动功能


您如何在Global.asax中托管您的服务?你能提供一些代码吗?你们有状态服务吗?否则,我看不出流程回收有任何问题。通常您有一个.svc文件,它引用您的服务实现。我正在从应用程序启动事件初始化它。是的,我的应用程序是一个有状态的WCF REST服务,在global.asax中,我正在一起初始化REST服务和TCP服务。我没有.svc文件,只是使用带有契约的类并将它们托管在IIS中。问题不在于服务状态。当另一个角色尝试访问回收的角色时,它无法访问并引发通信异常。我只想在循环事件后初始化我的应用程序,但只有当有人向应用程序发出外部请求时,它才会初始化。这就是web应用程序的概念。在IIS8中,您可以配置应用程序始终启动,但我不知道Azure。我认为您应该为此类服务使用工作者角色,而不是web规则