【问题标题】:WCF service - what could cause it to randomly shut-down?WCF 服务 - 什么可能导致它随机关闭?
【发布时间】:2017-01-02 13:03:31
【问题描述】:

在 IIS 中,我有一个 ASP.net Web 应用程序,它对 IIS 托管的 WCF 服务进行许多后台调用。

我在开发过程中从未遇到任何问题。但是,由于在工作中部署到一些测试服务器,我们的测试人员报告说一些调用似乎随机失败。我证实确实,一些幕后 webapp->service 调用失败并显示“(417)预期失败”。点击后退按钮并再次尝试该操作总是有效的。

我一直在网上看到的一个常见解决方案是https://stackoverflow.com/a/7358457/1669011

将其添加到我的 web 配置后,错误继续发生,但不是返回 417,而是最终返回我的 web.config 的 applicationInitialization remapManagedRequestsTo 页面的结果。

我觉得我上面提到的 web.config 修复只是允许我的 Web 应用程序接受完整的响应主体,而不是在它意识到它不是它所期望的 wcf 响应时失败。

如果 WCF 中的随机服务返回在应用程序初始化期间发生的重新映射请求的结果,这是否表明 IIS 中的 WCF 服务一直在完全关闭?

什么可能导致我的 WCF 服务随机处于“应用程序初始化”状态?我希望这只是一个服务器问题,与我的应用程序无关,因为它无处不在,并且正在冒着即将进行的部署的风险。

感谢您的帮助

【问题讨论】:

    标签: asp.net .net web-services wcf iis


    【解决方案1】:

    我的猜测是时间(或非常严重的例外)。

    具体来说,如果托管 WCF 服务的服务器没有经常受到攻击,它将关闭应用程序。请按照此处的说明确保 WCF 站点未被卸载:How to keep a WCF site online?

    如果是异常,则说明您没有提供足够的信息来诊断问题。

    【讨论】:

    • 谢谢 - 我知道没有异常(未记录或抛出)。有没有办法检查 IIS 是否故意关闭服务?我不认为这是一个自然的超时,因为简单地将操作间隔 5-10 分钟会显着提高发生这种情况的机会。在过去 2 小时的网上搜索中,我点击了该服务 4 次 - 每次都处于“启动”过程中,然后在一秒钟后工作。
    • 一个快速的谷歌搜索出现了这么旧的,但可能仍然有效:weblogs.asp.net/scottgu/433194
    • 这似乎是普遍问题。我以为我给服务引入了一个问题,因为这些是现有服务 - 但 WCF 服务是解决方案的新功能,我们的基础架构方面告诉我,新的 WCF 服务通常在关闭的旧应用程序池上存在这个问题经常停机或超时。在 applicationHosts.config 中,我们将 autostart="true" 和 startmode="AlwaysRunning" 添加到 App Pool,并将 idleTimeout="00:00:00" 添加到其子 processModel。我们还在应用中添加了 preloadEnabled="true" ,这似乎暂时解决了它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 2017-11-12
    相关资源
    最近更新 更多