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

如何将.NET 8 Blazor Auto项目(Server与Client端)部署到单个App Service?

将.NET 8 Blazor Auto项目的Server和Client合并部署到单个Azure App Service

步骤1:在Server项目中添加Client项目引用

打开Server项目的.csproj文件,添加对Client项目的项目引用,确保构建时能关联两者:

<ItemGroup>
  <ProjectReference Include="..\你的Client项目名称\你的Client项目名称.csproj" />
</ItemGroup>

步骤2:配置Server托管Client静态文件

修改Server项目的Program.cs,添加静态文件托管逻辑,确保在映射Blazor组件前执行:

var builder = WebApplication.CreateBuilder(args);

// 保留原有服务配置(如AddRazorComponents、AddInteractiveWebAssemblyServices等)
builder.Services.AddRazorComponents()
    .AddInteractiveWebAssemblyComponents();

var app = builder.Build();

// 启用静态文件托管,加载Client的UI资源
app.UseStaticFiles();
app.UseAntiforgery();

// 映射Blazor组件并关联Client程序集
app.MapRazorComponents<App>()
    .AddInteractiveWebAssemblyRenderMode()
    .AddAdditionalAssemblies(typeof(你的Client项目命名空间._Imports).Assembly);

// 保留原有API端点映射代码
app.MapControllers();

app.Run();

步骤3:配置发布时自动合并Client输出

在Server项目的.csproj中添加发布后事件,让Server发布时自动将Client的构建产物同步到自身的wwwroot目录:

<Target Name="PublishClient" AfterTargets="Publish">
  <Exec Command="dotnet publish ..\你的Client项目名称\你的Client项目名称.csproj -c $(Configuration) -o $(PublishDir)wwwroot" />
</Target>

步骤4:调整Client的API请求路径

如果Client中原本配置了指向独立Server的绝对API地址,需要改为相对路径(比如将https://server-domain/api改为/api),确保请求直接转发到当前托管的Server后端。

步骤5:测试与部署

  • 本地测试:清理解决方案后构建Server项目,启动Server,验证是否能正常访问Client UI和API接口。
  • 部署到App Service:直接将Server项目发布到Azure App Service即可,Client的静态文件已包含在Server的发布包中,无需单独部署。

内容的提问来源于stack exchange,提问作者Nagaraj Puthiyavan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:58:24