天天看点

将 blazor webassembly 部署到 iis 10 上

第一步 发布blazor wasm

在工程上右键选择 发布,发布到文件夹,默认到 bin/debug/release/publish 下,然后点 【发布】按钮,发布成功后,在 publish 文件夹内能看到 wwwroot 和 web.config。

第二步 将发布的文件夹拷贝到服务器上,编辑绑定

要求服务器上安装相应的.net 运行时,我的是.net core 3.1

第三步 解决跨域问题

blazor wasm 需要通过 HttpClient 跟其他 web server 进行 GET POST等调用,需要 web server 允许跨域。

注意:因文件夹无权限也可能报 cors拒绝访问错误!

我在服务器上的日志中发现了这个问题,为网站的文件夹(如果有)分配 IIS_IUSRS 完全控制权限。

第四步 压缩文件,提高加载速度

我的 blazor wasm 完全加载要13M,如果不压缩首次加载需要90秒。

publish时已经有了 gz 和 br 两种压缩文件,需要在iis上启动压缩,并在web.config中设置。

iis上启动压缩需要安装 Microsoft IIS Compression。

web.config 设置压缩参考官方例子。

gzip压缩后,下载文件大小变为了5M,时间38秒。

如果web api 的json较大,建议启动 动态压缩。

总结

blazor wasm 首次加载还是慢的可以,好在浏览器缓存后再请求就秒快了。据说 .net 6 把文件打包压缩且优化了系统文件的尺寸加载速度提高了不少。

继续阅读