Blazor Server(.NET6)部署IIS时UsePathBase配置及重定向问题咨询
Blazor .NET6 IIS部署:实现无端口访问与根路径重定向
一、调整IIS站点/应用程序配置
- 要实现
http://服务器名称/DEMO无端口访问,优先将应用部署为IIS默认网站下的应用程序:- 打开IIS管理器,找到绑定80端口的「默认网站」。
- 右键点击「默认网站」→「添加应用程序」。
- 别名填
DEMO,物理路径指向inetpub\DEMO发布目录,关联已创建的应用池。
- 若需使用独立站点,将站点绑定改为80端口(HTTP默认端口,访问时无需输入),物理路径仍指向
inetpub\DEMO。
二、Blazor应用代码配置
Program.cs设置路径基准:
在var app = builder.Build();后按顺序添加:app.UsePathBase("/DEMO"); // 添加根路径重定向逻辑 app.Use(async (context, next) => { if (context.Request.Path == "/") { context.Response.Redirect("/DEMO"); return; } await next(); }); app.UseRouting(); // 后续中间件(如UseAuthorization、UseBlazorFrameworkFiles等)保持原有顺序_Layout.cshtml修正base href:
将原<base href="~/" />修改为:<base href="/DEMO/" />该配置确保Blazor客户端资源、路由及SignalR连接都基于
/DEMO路径,避免连接中断报错。
三、验证与故障排查
- 部署完成后,访问
http://服务器名称会自动跳转至http://服务器名称/DEMO,且无WebSocket连接错误。 - 确认IIS已安装WebSocket协议:控制面板→程序→启用或关闭Windows功能→Internet Information Services→万维网服务→应用程序开发功能→勾选「WebSocket协议」。
- 应用池设置:将.NET CLR版本改为「无托管代码」,适配Blazor Server运行需求。
内容的提问来源于stack exchange,提问作者plaguebreath
相关产品推荐
相关产品推荐

