Streamlit Host in IIS server

Welcome to the Streamlit community, and thanks for sharing such a thorough step-by-step guide! :tada: Your instructions for deploying Streamlit on Windows Server with IIS as a reverse proxy (including full WebSocket support) are well-aligned with best practices and community recommendations. The key steps—installing URL Rewrite and ARR, enabling proxy and WebSocket support, running Streamlit as a Windows service (NSSM), configuring Streamlit for headless/proxy use, setting up IIS site bindings, and writing the correct web.config rules—are all essential for a robust deployment.

Your approach to disabling CORS and XSRF in Streamlit’s config.toml is necessary when using IIS as a reverse proxy, as IIS will handle those protections. The web.config rules, especially the order (WebSocket rule before HTTP), are critical for proper WebSocket upgrades, which Streamlit relies on for client-server communication. Community threads confirm that missing or misordered WebSocket rules, or leaving CDN/proxy toggles ON in DNS, are common causes of apps freezing or failing to load. For troubleshooting, your checklist and command references are spot-on—these match the advice given in official docs and forum posts for resolving blank pages, connection errors, and WebSocket issues when deploying behind IIS or other reverse proxies. For more details, see the official Streamlit remote deployment troubleshooting guide and community IIS deployment threads.

If you’d like a more detailed breakdown of any step, or want to see sample config files or troubleshooting logs, just let us know! And if you run into any issues, please share your config, error messages, and minimum reproducible example so the community can jump in and help. :rocket:

Sources: