Deploying Blazor Applications to Plesk Windows Hosting
Updated for .NET 8+: This guide covers all Blazor hosting models including the new Blazor Web App unified model.
Blazor Hosting Models
Before deploying, understand which Blazor model you are using:
| Model | Runs On | Best For |
|---|---|---|
| Blazor Server | Server (SignalR) | Internal apps, sensitive data |
| Blazor WebAssembly | Browser | Public apps, offline capability |
| Blazor Web App (.NET 8+) | Both | Flexible per-component choice |
Creating a Blazor Project (.NET 8+)
- Open Visual Studio 2022 (17.8 or later)
- Click Create a new project
- Select Blazor Web App (for .NET 8+) or Blazor WebAssembly Standalone App
- Configure project name and location
- Select .NET 8.0 or .NET 9.0 or .NET 10.0
- Choose your interactivity options:
- Server - Interactive Server rendering
- WebAssembly - Interactive WebAssembly rendering
- Auto - Server first, then WebAssembly
- None - Static server rendering only
- Click Create
Publishing to Plesk
Method 1: Web Deploy (Recommended)
- In Plesk, go to Websites & Domains → your domain
- Click Web Deploy Publishing Settings
- Download the .publishsettings file
- In Visual Studio, right-click your project → Publish
- Click Import Profile and select the downloaded file
- Enter your Plesk password when prompted
- Click Publish
Method 2: FTP Upload
- Publish locally:
dotnet publish -c Release -o ./publish - Connect via FTP to your domain
- Upload contents of publish folder to httpdocs
Configure Plesk for Blazor
- Go to Hosting Settings
- Set .NET Core Version to 8.0.x (or your target version)
- Set Application Startup File to your main DLL (e.g., MyBlazorApp.dll)
- Click OK
Blazor WebAssembly: Additional Configuration
Add MIME types to web.config for WebAssembly files:
<staticContent>
<remove fileExtension=".wasm" />
<mimeMap fileExtension=".wasm" mimeType="application/wasm" />
<remove fileExtension=".br" />
<mimeMap fileExtension=".br" mimeType="application/brotli" />
</staticContent>
.NET 8+ Render Modes
In .NET 8+, specify render modes per component:
@* Static server rendering *@
@rendermode Static
@* Interactive server (SignalR) *@
@rendermode InteractiveServer
@* Interactive WebAssembly *@
@rendermode InteractiveWebAssembly
@* Auto (Server first, then WASM) *@
@rendermode InteractiveAuto
Troubleshooting
- App not loading: Check stdout logs for startup errors
- SignalR disconnects: See our SignalR troubleshooting article
- Static assets missing: Verify MIME types and file permissions
- WASM integrity errors: Use binary mode for FTP transfers
For more details, see our specialized Blazor articles in the Blazor Development category.
Hosting a Blazor app? Our Blazor hosting plans support Blazor Server, WebAssembly, and ASP.NET Core Hosted apps with all .NET render modes, on dedicated IIS application pools and Windows Server 2022. Compare plans.