【问题标题】:IIS Hosted WCF Service with TCP endpoint stops after Application Pool Recycle应用程序池回收后,带有 TCP 端点的 IIS 托管 WCF 服务停止
【发布时间】:2013-05-26 09:08:16
【问题描述】:

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

如何控制回收事件以保持我的 webroles 活着。最好的解决方案是什么? 我尝试了自动启动功能,但它不起作用。

【问题讨论】:

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

标签: wcf iis azure azure-web-roles recycle


【解决方案1】:

你应该在iis7.0上安装和使用Appfabric 它有一个可配置的自动启动功能

http://msdn.microsoft.com/en-us/library/ee677312(v=azure.10).aspx

【讨论】:

    猜你喜欢
    • 2011-03-10
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多