It likely works in Visual Studio because you are running in Debug with different environment settings. After deployment differences like web server timeouts, firewall rules or production configuration (e.g., IIS, NGINX, reverse proxies) may block or close idle connections breaking your KeepAlive logic Check deployed environment settings and logs.