如何在同一站点同时托管 Blazor 应用与 Dotnet API 项目
双ASP.NET项目部署到Myasp.Net单站点方案
Myasp.Net支持单站点下创建独立虚拟应用,你可以将API项目部署到子路径、Blazor Server部署到根路径实现共用站点,操作步骤如下:
前置准备
先分别将两个项目做发布前适配:
- 打开API项目的
Program.cs,在中间件注册的最开头添加路径基址配置:
配置完成后将API项目发布到本地文件夹备用。var builder = WebApplication.CreateBuilder(args); // 原有服务注册代码保留 var app = builder.Build(); // 新增这一行,放在所有中间件最前面 app.UsePathBase("/api"); // 原有中间件、路由配置保留 app.Run(); - 修改Blazor Server项目中的API请求基地址,将原有独立API域名替换为当前站点域名加
/api前缀,比如原地址https://独立api域名.com改为https://你的myasp站点域名/api,配置完成后将Blazor项目也发布到本地文件夹备用。
站点配置操作
- 登录Myasp.Net站点控制面板,找到对应站点的虚拟应用/目录管理入口,新增虚拟应用:
- 虚拟路径填写
/api - 物理路径设置为站点根目录下的
api文件夹 - 勾选「设置为独立应用程序」选项后保存配置
- 虚拟路径填写
- 通过FTP或平台自带的文件管理器上传发布文件:
- Blazor Server项目的所有发布文件上传到站点根目录
- API项目的所有发布文件上传到刚才创建的
/api目录下
- 重启站点后即可正常访问,Blazor走根路径路由,API走
/api前缀的路由,不会互相冲突。
异常排查
- 若API请求返回404:检查虚拟应用是否配置成功,确认API项目的
app.UsePathBase配置位置是否在所有中间件之前 - 若出现运行时权限错误:在站点权限设置中给根目录和
/api目录都授予读取、执行、写入权限
内容的提问来源于stack exchange,提问作者Asif
相关产品推荐
相关产品推荐

