如何防止 Service Fabric 为 Actors 生成默认服务

How can I prevent Service Fabric from generating Default Services for Actors

每次我在 Visual Studio 中构建我的 Service Fabric 解决方案时,都会修改 ApplicationManifest 和 ServiceManifest,并为我的解决方案中的所有 Reliable Actors 添加默认服务条目。

我该如何预防?

注意:默认服务不是为 Reliable Services 创建的,这正是我所期望的。

最终,我们的目标是在每次新 tenant/customer 通过我们的 Web 门户注册时创建一个 "empty" 命名应用程序实例(每个租户一个应用程序类型的实例)。

然后租户可以通过我们的 Web 门户 enable/disable 功能,它转换为 creating/removing 租户应用程序实例中 Actor/Service 类型的实例。

如果这不是在 Service Fabric 中的多租户场景中实现隔离的正确方法,感谢您提供指导。

我会说你不能...有一段时间我试图设置我自己的分区方案设置(将默认设置切换为命名分区或更改 UniformInt64 的 low/high 键)但是无论我做什么,VS 都会覆盖它们。事实证明这是预期的行为,因为我 'misunderstood' 如何对演员应用分区,所以 VS 很高兴 'fixing' 我的错误。请参阅 Can't change partitioning scheme for actors 以供参考。最重要的是,VS 似乎调整了 Actors 服务清单以将 Actor 的神圣目的保留为模式。

至于多租户应用程序,考虑部署一个单独的应用程序类型,每个应用程序类型都有自己的设置 customer/tenant。

P.S. 我可以通过手动部署 Actors 服务而不是通过 VS 来获得我想要的东西,但那是另一回事了。

谢谢 Kiryl...我终于在 Visual Studio.

中找到了一篇文章,解释了在构建 Service Fabric 应用程序时禁用应用程序清单中的生成的方法

打开Actor工程的.csproj,将下面的属性修改为"false"

<UpdateServiceFabricManifestEnabled>false</UpdateServiceFabricManifestEnabled>

您可以在此处找到该文章:https://github.com/Azure/service-fabric-issues/issues/271

干杯!