https - https 和 Service Fabric 的问题
问题描述
在尝试在我们的 ServiceFabric 后端实现 https 时,按照本指南,我发现我的本地集群抛出以下错误:
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>
我搜索了所有内容,但找不到问题所在。欢迎任何意见!提前致谢!
解决方案
这对我有用。我添加了 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"
推荐阅读
- mongodb - 从单独的文件中获取 mongoDB 中用户的数据
- r - 合并两个有一个共同边的染色体盒数据类型
- types - 在 Woocommerce 中的自动完成订单流程中排除特定产品
- r - 添加新列天
- navigation - 无wifi连接的室内定位解决方案
- sql-server - SQL Server:删除所有表中的数据 -> 是否有更好的查询?
- javascript - localStorage 和 checkbox(switch) 的使用
- c++ - 在 CMake 中,如何使“TARGET_LINK_LIBRARIES”抑制来自 3rd 方库代码的警告?
- php - 如何覆盖magento 1.9时事通讯模型subscriber.php
- javascript - 如何访问包含对象的 JSON 数组中的值