Blazor Server默认计数器按钮IIS本地正常,外网访问失效及解决
Server-Side Blazor(.NET 5)外网访问时Counter按钮无法正常递增
问题背景
- 开发环境:以管理员身份使用Visual Studio 2019 + IIS Express,Windows 10已启用发布网站所需额外功能
- 项目配置:创建Server-Side Blazor应用,选择.NET 5.0(因.NET 3.1无ProtectedBrowserStorage),无身份验证,配置HTTPS(使用Cloudflare域名服务器),未启用Docker,环境变量设为开发环境
- 本地验证:未修改默认代码,Release模式本地运行正常,Counter页面的“Click Me”按钮可正常递增计数器
- 部署情况:将应用发布至
~bin\release\net5.0\publish,复制到IIS的inetpub目录并重命名为B02;在IIS中创建对应网站,添加两个HTTPS 443端口绑定。本地通过IIS浏览网站时所有功能正常,但通过外网域名https://www.bkdaniels.com访问时,Counter页面的“Click Me”按钮仅改变边框样式,无法递增计数器,页面导航功能正常 - 域名配置:
bkdaniels.com在GoDaddy注册,使用Cloudflare域名服务器获取SSL证书
调试过程
- 安装.NET 6.0 SDK,并在
Program.cs中添加app.UseWebSockets(),仅清除相关警告,未解决核心问题 - 切换至GoDaddy默认域名服务器可修复按钮功能,但会失去Cloudflare提供的SSL证书,不符合需求
- 将Cloudflare缓存设置为开发者模式可临时解决问题,但仅作为临时方案,不适用于生产环境
最终解决方案
登录Cloudflare域名控制台,进入Speed > Optimization > Auto Minify选项,将HTML的自动压缩设置为OFF,设置完成后,应用所有功能恢复正常。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

