2
votes

Everytime I build my Service Fabric solution in Visual Studio, the ApplicationManifest and ServiceManifest are modified and Default Services entries are added for all Reliable Actors in my solution.

How can I prevent that?

Note: Default Services are not created for the Reliable Services which is what I am expecting.

Ultimately, our goal is to create an "empty" Named Application instance every time a new tenant/customer signs up through our Web Portal (one instance of the application type per tenant).

Then the tenant can enable/disable features through our Web Portal which translates to creating/removing an instance of an Actor/Service types inside the tenant's application instance.

Thanks for providing guidance if this is not the right way to implement isolation in multi-tenancy scenario in Service Fabric.

2

2 Answers

4
votes

Thanks Kiryl... I finally found an article that explains the way to disable the generation of in the application manifest while building the Service Fabric application in Visual Studio.

Open the .csproj of the Actor project and modify the following property to "false"

<UpdateServiceFabricManifestEnabled>false</UpdateServiceFabricManifestEnabled>

You can find the article here: https://github.com/Azure/service-fabric-issues/issues/271

Cheers!

0
votes

I'd say you can't... There was a time I was trying to set my own settings for partitioning scheme(switch the default one to Named partitioning or change low/high key for UniformInt64) but VS was overriding them no matter what I did. Turned out it was an expected behavior as I 'misunderstood' how partitioning is applied with actors, so VS gladly was 'fixing' my mistakes. See Can't change partitioning scheme for actors for the reference. The bottom line is, seems like VS adjusts Actors Service manifest to preserve the holy purpose of actors as a pattern.

As for multi-tenant application, consider deploying a separate app type with its own settings per each customer/tenant.

P.S. I was able to get what I want by deploying Actors Service manually rather than via VS, but that's another story.