Search code examples
azure-service-fabric

Service fabric debugging - reliablecollection persisted?


I can't seem to find any information on whether a ReliableCollection, specifically ReliableQueue is persisted between debugging sessions in visual studio. It does not seem like it is. I think it's because the application is removed and then re-added during debugging. Can anyone confirm this?


Solution

  • Yes, the default behavior is to remove the deployed application after the debugger stops. Fortunately, you can change this.

    1. There are two ways this can be done: Launch your app from VS without the debugger attached (Debug -> Start Without Debugging [Ctrl+F5]). Obviously, this would require you to manually attach VS to your service processes in order to debug them. When you detach VS from the processes, VS will not remove the application in this scenario.

    2. With your Application (.sfproj) project selected in Solution Explorer, go to the Properties window and change Application Debug Mode from "Remove" to "Auto Upgrade". This prevents VS from removing the application after debugging. However, it also causes another change in behavior in that it will automatically upgrade your application each time you launch it from VS. The added benefit of auto upgrade is that your application state will be maintained across multiple launches from VS. This may be desired or not. There is not a setting that allows you to both prevent application removal and not do an auto upgrade.