云服务角色无法重新启动

时间:2018-05-08 15:33:39

标签: azure cloud azure-cloud-services

我能够成功部署我的云服务。我也能够成功地删除云部署并重新部署并且所有角色都没有问题地启动,但是,当我停止服务并重新启动它时,我的一个角色继续回收并且我收到此错误并且角色继续回收:

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

最近,启动任务中唯一发生变化的是使用

注册新端口

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

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

2 个答案:

答案 0 :(得分:0)

一些调试方法:

  • 远程桌面到机器。您必须启用此功能,并希望在您的工作者角色失败时,您已经可以远程桌面到它。从您的错误消息中,您似乎应该可以远程登录。
  • 检查窗口的事件查看器。
  • 您的申请的某些部分可能需要提升许可。
  • 设置Application Insight以诊断服务。

答案 1 :(得分:0)

添加stack247的建议,如果是丢失DLL的情况,解决丢失的DLL和程序集错误,请按照下列步骤操作:

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

  2. 在Solution Explorer中,打开References文件夹。

  3. 单击错误中标识的程序集。
  4. 在“属性”窗格中,找到“复制本地属性”并将值设置为“True”。
  5. 重新部署云服务。 验证所有错误都已更正后,可以在不选中“启用IntelliTrace for .NET 4角色”复选框的情况下部署该服务。
  6. 角色可以回收的常见原因,您可以通过以下步骤进一步缩小问题范围:

    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