【问题标题】:Issues with https and Service Fabrichttps 和 Service Fabric 的问题
【发布时间】:2018-08-22 14:41:43
【问题描述】:

在尝试在我们的 ServiceFabric 后端实现 https 时,遵循 this 指南,我发现我的本地集群抛出以下错误:

CodePackage 激活过程中出现错误。服务主机 以退出代码终止:1

有时会弹出以下内容:

fabric:/Dev.Project/Api 没有准备好,1 剩余的分区。 => 应用程序耗时太长 还没准备好。

在诊断事件中我找到了这个

{
  "Timestamp": "2018-08-20T12:01:21.6423999+02:00",
  "ProviderName": "Microsoft-ServiceFabric",
  "Id": 23083,
  "Message": "ApplicationHostTerminated:   ApplicationId=fabric:/Dev.Project,  ServiceName=fabric:/Dev.Project/Api,  ServicePackageName=ApiPkg,  ServicePackageActivationId=1d4426dc-3d5e-41ea-aa44-6e9794ff7c69,  IsExclusive=True,  CodePackageName=Code,  EntryPointType=Exe,  ExeName=Setup.bat,  ProcessId=29024,  HostId=77c22be7-b993-46c6-92dd-7c7ed0c8af1c,  ExitCode=1,  UnexpectedTermination=True,  StartTime=12:01:21.568939 (151,099.982 MSec). ",
  "ProcessId": 25768,
  "Level": "Informational",
  "Keywords": "0x4000000000000001",
  "EventName": "Hosting",
  "ActivityID": null,
  "RelatedActivityID": null,
  "Payload": {
    "eventInstanceId": "6dbdc967-85ed-429a-ae6a-939aeeea1e3f",
    "applicationName": "fabric:/Dev.Project",
    "ServiceName": "fabric:/Dev.Project/Api",
    "ServicePackageName": "ApiPkg",
    "ServicePackageActivationId": "1d4426dc-3d5e-41ea-aa44-6e9794ff7c69",
    "IsExclusive": true,
    "CodePackageName": "Code",
    "EntryPointType": 1,
    "ExeName": "Setup.bat",
    "ProcessId": 29024,
    "HostId": "77c22be7-b993-46c6-92dd-7c7ed0c8af1c",
    "ExitCode": 1,
    "UnexpectedTermination": true,
    "StartTime": "2018-08-20T12:01:21.5689395+02:00"
  }
}

Id 是我的 Api 服务的 Id。它可能与未正确执行的 Setup.bat 有关,或者在运行它时抛出错误,但我不知道该怎么做。如指南中所述,我添加了

<Principals>
  <Users>
    <User Name="SetupAdminUser">
      <MemberOf>
        <SystemGroup Name="Administrators" />
      </MemberOf>
    </User>
  </Users>
</Principals>

部分,并将 RunAsPolicy 也添加到服务中

<ServiceManifestImport>
  <ServiceManifestRef ServiceManifestName="ApiPkg" ServiceManifestVersion="1.0.0" />
  <ConfigOverrides>
    <ConfigOverride Name="Config">
      ...
    </ConfigOverride>
  </ConfigOverrides>
  <EnvironmentOverrides CodePackageRef="Code">
    ...
  </EnvironmentOverrides>
  <Policies>
    <RunAsPolicy CodePackageRef="Code" UserRef="SetupAdminUser" EntryPointType="Setup" />
  </Policies>
</ServiceManifestImport>

我找遍了,但我找不到问题所在。欢迎任何意见! 提前致谢!

【问题讨论】:

  • 你能与Setup.bat分享这部分吗?同时,您可以使用节点检查 VM 的语言环境吗?这可能是因为在不同的操作系统语言中,“管理员”组具有不同的名称。

标签: https azure-service-fabric


【解决方案1】:

这对我有用。 我添加了 LocalSystem 而不是 Admin 用户。

 <Policies>
  <RunAsPolicy CodePackageRef="Code" UserRef="SetupLocalSystem" EntryPointType="Setup" />
</Policies>

 <Principals>
<Users>
  <User Name="SetupLocalSystem" AccountType="LocalSystem" />
</Users>

还要注意 SetCertAccess.ps1 文件中的 DNS 名称,它应该与集群名称相同。

$subject="your cluster DNS name"

【讨论】:

    猜你喜欢
    • 2017-02-14
    • 2018-04-13
    • 2016-10-01
    • 2020-10-26
    • 2017-09-06
    • 2018-08-08
    • 2016-09-29
    • 2021-01-11
    • 2018-01-06
    相关资源
    最近更新 更多