【问题标题】:Cloud Service Role fails to restart云服务角色无法重新启动
【发布时间】:2018-05-08 15:33:39
【问题描述】:

我能够成功部署我的云服务。我还能够成功删除云部署并重新部署,并且所有角色都可以正常启动,但是,当我停止服务并再次启动它时,我的一个角色继续回收,我收到此错误并且角色继续循环:

正在恢复角色...应用程序启动任务“E:\approot\runinstallers.cmd”失败,退出代码为 1。[2018-05-08T15:23:12Z] 上次退出时间:[2018/05/08, 15 :23:13.005]。最后退出代码:-2147467259。上次启动任务错误:name - "E:\approot\runinstallers.cmd" , exit code - 1

最近,启动任务中唯一改变的是使用注册新端口

netsh http 添加 urlacl url=https://+:8443/sddl=D:(A;;GX;;;NS)

任何调试帮助将不胜感激。

【问题讨论】:

    标签: azure cloud azure-cloud-services


    【解决方案1】:

    一些调试方法:

    • 将桌面远程连接到计算机。您将必须启用此功能,并希望在您的工作角色失败时,您已经可以远程桌面到它。从您的错误消息来看,您应该可以远程进入。
    • 检查 Window 的事件查看器。
    • 您的应用程序的某些部分可能需要提升权限。
    • 设置 Application Insight 以诊断服务。

    【讨论】:

      【解决方案2】:

      补充stack247的建议,如果是缺少DLL的情况,要解决缺少DLL和汇编错误,请按照以下步骤操作:

      1. 在 Visual Studio 中打开解决方案。

      2. 在解决方案资源管理器中,打开 References 文件夹。

      3. 单击错误中标识的程序集。
      4. 在“属性”窗格中,找到“复制本地”属性并将值设置为 True。
      5. 重新部署云服务。 验证所有错误均已更正后,无需选中为 .NET 4 角色启用 IntelliTrace 复选框即可部署服务。

      角色可能循环使用的常见原因,您可以通过以下步骤进一步缩小问题范围:

      1. 缺少运行时依赖项:您必须在应用程序包中明确包含该程序集。
      2. 程序集的目标平台错误:Azure 是 64 位环境。因此,为 32 位目标编译的 .NET 程序集无法在 Azure 上运行。
      3. 角色在初始化或停止时抛出未处理的异常:任何由 RoleEntryPoint 类的方法(包括 OnStart、OnStop 和 Run 方法)抛出的异常都是未处理的异常。如果其中一种方法发生未处理的异常,则角色将回收。
      4. 从 Run 方法返回的角色:Run 方法旨在无限期地运行。如果您的代码覆盖 Run 方法,它应该无限期地休眠。如果 Run 方法返回,则角色循环。
      5. 不正确的 DiagnosticsConnectionString 设置:如果应用程序使用 Azure 诊断,您的服务配置文件必须指定 DiagnosticsConnectionString 配置设置。此设置应指定与 Azure 中的存储帐户的 HTTPS 连接
      6. 导出的证书不包含私钥:要在 SSL 下运行 Web 角色,您必须确保导出的管理证书包含私钥。 参考:https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-troubleshoot-roles-that-fail-start

      【讨论】:

        猜你喜欢
        • 2023-03-29
        • 2014-11-05
        • 1970-01-01
        • 2016-10-10
        • 1970-01-01
        • 1970-01-01
        • 2018-11-23
        • 2018-01-29
        • 1970-01-01
        相关资源
        最近更新 更多