把 Blazor 应用放到法国的 Windows VPS 上
Blazor Server 会为每个用户保持一条 SignalR 连接:正是这种模式需要一台自己的机器,而不是共享主机。
低至 每月 9,99 €
概述
同样叫 Blazor 的两种应用,可能需要完全不同的托管方式。Blazor Server 在服务器端执行代码,并为每个用户保持一条 SignalR 连接:机器承载着每个会话的状态,网络稍有中断,屏幕上立刻就看得出来。正是这种模式才值得配一台自己的服务器。在 By-Hoster,Windows VPS 系列每月 9.99 欧元(含税)起,10 分钟交付,带专属 IPv4 和完整管理员权限。
Blazor WebAssembly 的情况正好相反。发布之后,应用只是一包静态文件——HTML、JavaScript、.NET 程序集——由浏览器下载,之后所有代码都在客户端执行。这样一包东西只需要一台能分发文件的服务器:我们每月 1 欧元起的共享虚拟主机就够了。说出来我们少做一笔生意;不说,您就多花一台服务器的钱。
一旦出现Server 模式、WebAssembly 包背后要托管的 API,或者把两者混在一起的自动交互式渲染,VPS 就重新成为合适的工具。这时您拿到的是裸装系统:您是管理员,IIS、ASP.NET Core 运行时和对应的模块都可以自行安装。其余什么都没预装,TLS 证书用您选的方式部署,微软授权仍由您承担。
这台服务器能给 Blazor 应用带来什么
每个在线用户一条 SignalR 线路
在 Server 模式下,每打开一个标签页就会建立一条 SignalR 线路,由服务器维持,并把状态保存在内存里。所以资源消耗取决于并发会话数,而不是流量,并且会随着应用为每个用户保存的东西一起增长。一台专属 VPS 能让您把真实消耗量出来,然后据此选配置,而不是靠猜。
IIS 和运行时要自己装,不是交付好的
机器到手时只有操作系统,别的什么都没有。Web 服务器角色可以在服务器管理器里添加,或者一行 PowerShell 搞定;接着装上从微软下载的 ASP.NET Core 运行时,以及把 IIS 放到 Kestrel 前面的那个模块。没有面板规定版本,没有预制镜像替您做主,WebSocket 协议也和任何一项 Windows 功能一样,开一下就行。
500 Mbps、专属 IPv4 和 DDoS 防护
Blazor Server 应用是活在网络链路上的:只要用户还在操作,连接就一直开着。每款配置都含专属 IPv4 地址、DDoS 防护和 500 Mbps——Titan 为 1000 Mbps。至于短暂断线之后线路的恢复,那要在您的应用里处理:那是代码的事,不是基础设施的事,我们不想让人误会。
SSD、快照、VNC 控制台、全天候客服
SSD 存储;升级运行时版本之前可在客户中心打快照;重装可自助完成;万一某条防火墙规则把 RDP 关在门外,还有 VNC 应急控制台;以及全天候人工客服(工单、Discord、电话)。无需签约,48 小时不满意可退款,按年付费再减 16,7 %。包含的只有快照:没有自动的异地备份。
这些服务器上真正部署的东西
一套业务用的 Blazor Server 应用
供一支明确团队使用的内部工具,Server 模式能把一切都简化:不用写 API,逻辑留在服务器端、靠近数据库。这正是需要一台专属机器和足够内存的场景。
自动交互式渲染
应用先以 Server 模式启动,撑过首屏渲染,等程序集下载完再切到 WebAssembly。它需要两半都在同一处:一台既能分发静态包、又能维持线路的 ASP.NET Core 服务器。
陪着 WebAssembly 的那个 API
静态包可以放在共享主机上分发,但它调用的 ASP.NET Core API 需要一台服务器。您把它连同数据库和后台任务放在这里,认证和 CORS 也都握在自己手上。
某个必须用 Windows 的依赖
后台仍在用的一个 .NET Framework 库、一个 COM 组件、一个驱动,或者一个只有 Windows 上才有的业务可执行文件。到了这一步,选 Windows 而不是 Linux 才真正站得住脚,而不只是习惯使然。
Blazor 和它的 SQL Server 数据库
应用和数据库引擎装在同一台机器上:连接字符串指向本机,1433 端口完全没有对外的理由。SQL Server 仍需自己的授权,Express 在其明文限制内免费。
9.99 欧元的验收环境
再开一台 Windows - Core VPS,用来试运行时的版本升级或 IIS 配置的改动,然后再去动那台干活的服务器。试之前先打快照,操作翻车了就在客户中心重装。
常见问题
Windows VPS 系列从 每月 9.99 欧元(含税)的 Windows - Core 起步(4 vCore、8 GB 内存、100 GB SSD、500 Mbps)。再往上:Plus 16.99 欧元(8 vCore、16 GB、250 GB),最多人选的一款;Max 28.99 欧元(16 vCore、32 GB、500 GB);Titan 54.99 欧元(24 vCore、64 GB、800 GB、1000 Mbps)。按年付费再减 16,7 %。价格涵盖机器、网络和客服,不含任何微软授权。
这是下单前唯一要紧的问题。Blazor Server 在服务器上执行您的代码,并为每个用户保持一条 SignalR 线路:内存按会话消耗,应用依赖稳定的连接,这时一台自己的机器就成了必需。Blazor WebAssembly 发布之后只是一组静态文件,由浏览器执行:服务器端不需要任何运行时。如果您属于后一种、又没有 API,那么 Windows VPS 就是一笔冤枉钱。
能,而且往往正是该这么选。发布之后,WebAssembly 应用就是一个文件夹——index.html、JavaScript、.NET 程序集——浏览器下载后自己执行。我们的共享虚拟主机每月 1 欧元起,分发这些完全够用。只有当您后面还有一个 ASP.NET Core API、有 Server 模式,或者用了把两半混在一起的自动交互式渲染时,VPS 才重新变得有用。
这取决于您的应用为每个用户在内存里保留了什么:我们不公布任何按线路计的数字,因为没有人在您的代码上量过。我们的官方配置参考线仍是:轻度使用 4 GB,一旦加上业务软件、SQL Server Express 或多人同时在线就要 8 GB。我们所有套餐都已经从 8 GB 起步。如果数据库也在同一台机器上、会话又多,那么每月 16.99 欧元的 Windows - Plus 及其 16 GB 能省下算内存的功夫。
不是。By-Hoster 交付的是裸装系统:Windows、完整管理员权限,别的什么都没有。Web 服务器(IIS)角色可以在服务器管理器里添加,或者用一行 PowerShell:Install-WindowsFeature -Name Web-Server -IncludeManagementTools。接着您再装从微软下载的 ASP.NET Core 运行时和把 IIS 放到 Kestrel 前面的模块。这是有意为之:没有预制镜像,也没有哪个面板把运行时版本锁死。
用您自己选的方式:管理员权限让您装上惯用的工具、把已有证书导入 Windows 证书存储,并在 IIS 里建好 HTTPS 绑定。对 Blazor Server 有一点很重要:线路走的是 WebSocket,所以 TLS 配置必须像覆盖站点其余部分一样覆盖这条连接。By-Hoster 不提供、不续期、也不管理任何证书——我们交付机器,里面放什么由您决定。
需要,而且微软授权由您承担:我们装系统,但既不提供也不转售授权。接下来常有两个问题。Windows Server 允许同时开 2 个管理用途的 RDP 会话;再多,应用型 RDP 访问就要微软的 RDS CAL——这与您网站的访客无关,只关系到在这台机器上开桌面的人。另外,SQL Server 需要自己的授权:Express 免费,Standard 和 Enterprise 收费。
很多时候确实如此,我们愿意直说。ASP.NET Core 是跨平台的:Blazor Server 应用在 Linux 上配 Nginx 跑得毫无问题,而我们的 Linux KVM VPS 每月 4.99 欧元起,也不必买微软授权。Windows 只在三种情形下真正占优:有 .NET Framework 依赖;有 COM 组件或只在 Windows 上存在的可执行文件;或者需要用 RDP 开一个图形会话。我们的 Windows 还是 Linux 指南把取舍讲得更细。
在 Blazor Server 下,用户会丢掉自己的线路,界面会一直卡住直到重连:这是这套模型必须承担的代价,客户端网络一不稳定马上就看得出来。在 WebAssembly 下,应用仍在浏览器里继续跑。服务器这边,每款配置都含 500 Mbps、专属 IPv4 和 DDoS 防护。至于线路恢复的处理,那属于您的代码:没有哪种基础设施能代劳。
下单时提供三种系统,均不加价:Windows Server 2025(标准支持到 2029 年 11 月 13 日,安全更新到 2034 年 11 月 14 日)、Windows Server 2022(标准支持到 2026 年 10 月 13 日,安全更新到 2031 年 10 月 14 日),以及 Windows 11——客户端系统,只适合当工作机,并非为承载多用户服务而设计。服务器跑在我们位于新阿基坦大区的唯一机房 DC-FR_NA(01),Proxmox 上的 KVM,受法国司法管辖,绝不传出欧盟。