Guide

How to self-host live chat on Windows with IIS

If you run Windows Server, hosting your own live chat is a familiar deployment: an ASP.NET Core app behind IIS with SQL Server as the database. This guide walks through the five steps from a clean server to a working chat widget on your site, with every conversation stored in your own database. For an overview of both Windows editions and requirements, see live chat software for Windows Server.

Step 1. Install the prerequisites

On the target Windows Server, enable the IIS role and install the ASP.NET Core Hosting Bundle so IIS can host the application. Confirm you can reach a SQL Server instance, either on the same box or on your network. If you just want to try it first, the free localhost evaluation runs on a workstation with no server role required.

Step 2. Create the database

Create an empty database on your SQL Server and run the included SQL scripts to build the schema. Because the data lives in your own SQL Server, transcripts and visitor records stay on infrastructure you control and are queryable and backed up with your existing tools.

Step 3. Deploy the application

Copy the published application files to the server, create a new site in IIS Manager pointing at that folder, and set the database connection string in the app configuration. Start the site and browse to it locally to confirm it loads.

Step 4. Bind HTTPS

Add an HTTPS binding to the IIS site with your TLS certificate so all chat traffic is encrypted. Chat runs over the same secure channel as the rest of your site, which matters when conversations carry customer details.

Step 5. Add the widget

Sign in to the dashboard, create and style a widget, and paste its snippet into your website just before the closing body tag. Start a test chat, answer it from the dashboard or the Windows desktop console, and you are live.

Prefer Linux or Docker?

The same server runs beyond Windows

The chat server also runs on Linux behind Nginx and in Docker, all against the same SQL Server schema. Pick the platform your team already operates and keep the data in your own database.

Installing on Windows Server with IIS

DChat is a normal ASP.NET Core application, so it deploys the way any other one does. These are the steps that matter, including the two that catch people out.

  1. 1. Install the prerequisites

    Install IIS first, then the ASP.NET Core Hosting Bundle for .NET 8 - it installs the runtime and the IIS module together. Restart IIS afterwards so the module is registered. You also need SQL Server 2014 or newer; Express is fine.

  2. 2. Create the database

    Create an empty database, then run the two scripts from the package in order:

    install-source\ZCHAT-APP-DB.sql     -- tables
    install-source\seed-data.sql        -- initial accounts

    The seed accounts exist so you can sign in immediately. Change those passwords before the server is reachable by anyone else - the dashboard shows a warning banner until you do.

  3. 3. Point the application at it

    Put your connection string in Web\appsettings.json, or copy Web\appsettings.example.json and edit that. Keep Web\zchat.lic in the Web folder, and restart the site after changing either.

  4. 4. Create the IIS site

    Point a site at the Web folder and set its application pool's .NET CLR version to No Managed Code. ASP.NET Core runs out of process, so IIS should not load a managed runtime for it. Bind your certificate for HTTPS.

  5. 5. Verify before announcing it

    Open /health/ready - it should report database, licence and schema all healthy. Then sign in at /dashboard, open /widget-test.html, and run one conversation end to end.

Questions we get asked

What do I need on the Windows server?

The ASP.NET Core Hosting Bundle for .NET 8, which installs the runtime and the IIS module together, plus SQL Server 2014 or newer. Install the hosting bundle after IIS, and restart IIS afterwards so the module registers.

What application pool settings does DChat need?

Set the pool's .NET CLR version to 'No Managed Code'. ASP.NET Core runs out of process behind IIS, so IIS must not try to load a managed runtime for it.

Where do I put the connection string?

In Web\appsettings.json, or as an environment variable. The package includes appsettings.example.json to copy from. Restart the site after changing it.

How do I know the install succeeded?

Open /health/ready. It reports the database, licence and schema separately, so a failure names the dependency at fault rather than returning a bare error. /health/live confirms only that the process is answering.

How do I serve it over HTTPS?

Bind your certificate to the site in IIS as you would for any other application, and use the https address in the widget embed so the page and the widget share a scheme.

Self-hosted customer support software

Deploy live chat on your own terms, not on someone else's pricing model.

DChat gives you the installable server, web dashboard, website widget, and desktop agent tools in one self-hosted product, with live chat free to run, and an AI agent that answers, acts with the approvals you set and hands off to your team when you want one. Run it on infrastructure you trust, on the model you choose.

Deployment

Install on Windows or Linux, behind IIS or Nginx, in a VM, or in Docker if that fits your stack.

Commercial model

Live chat is free with unlimited agents. Premium, with the AI agent, is billed per agent per month, never per conversation.

AI Flexibility

Run the AI agent on a local Ollama model, or connect OpenAI and Anthropic with your own provider accounts.