You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Business Central控件加载项中托管Blazor WebAssembly应用?

在Business Central控件加载项中直接托管Blazor WebAssembly应用的可行性

结论:可以实现,核心是利用Business Central控件加载项的WebView容器特性,将Blazor WASM的静态资源嵌入加载项内部运行,无需依赖外部服务器。

关键实现逻辑与步骤

  • 底层适配基础:Business Central的控件加载项在Windows客户端基于Edge WebView2、Web客户端基于浏览器原生环境运行,本质是一个可加载本地HTML/JS资源的Web容器。Blazor WebAssembly是自包含的WASM应用,可直接在浏览器/WebView环境中运行,因此具备嵌入的基础。
  • 具体操作步骤:
    1. 导出Blazor WASM静态资源:在Blazor项目中执行dotnet publish -c Release,打包生成wwwroot目录下的所有静态文件(包含blazor.webassembly.js、编译后的WASM二进制文件、样式表及页面文件等)。
    2. 嵌入加载项包:将上述静态资源作为本地文件添加到Business Central控件加载项的部署包(如.zip文件)中,或通过Visual Studio将资源设置为“嵌入资源”,确保加载项启动时可访问这些文件。
    3. 配置加载逻辑:在控件加载项的入口HTML文件中,直接引用本地嵌入的blazor.webassembly.js,并设置Blazor的启动路径为本地资源路径(避免指向外部URL),示例代码片段:
      <script src="_framework/blazor.webassembly.js"></script>
      
    4. 权限配置:确保Business Central允许控件加载项访问本地资源,Windows客户端的WebView2需启用本地文件加载权限,Web客户端因同源策略限制较少(资源与加载项同域)。

注意事项

  • 性能优化:Blazor WASM初始包体积较大,会影响加载项启动速度,建议启用AOT编译、压缩静态资源、拆分懒加载模块来优化。
  • 版本兼容:Blazor WASM是自包含运行时,无需依赖系统.NET环境,但需确保其使用的JS API与加载项的WebView版本兼容。
  • 调试技巧:先在本地浏览器完成Blazor应用的调试,再嵌入到加载项中;Windows客户端可通过WebView2的调试工具(F12)排查加载问题。

内容的提问来源于stack exchange,提问作者David Makharadze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:22:10