Blazor .NET 8 IIS子域名部署出现ERR_TOO_MANY_REDIRECTS问题求助
处理Blazor .NET 8部署IIS子域名出现ERR_TOO_MANY_REDIRECTS问题
问题描述
我基于Blazor和.NET 8开发的应用部署在IIS的子域名(AppCore)下,使用独立应用程序池。服务器本地访问正常,但外部访问时弹出错误:
This page isn’t working right now "MyDomain" redirected you too many times. Try deleting your cookies. ERR_TOO_MANY_REDIRECTS
相关环境说明
- 同一域名下的其他.NET Framework项目运行正常;
- 已安装Hosting Bundle和.NET 8 SDK;
- 存在包含
configEncKeyAes的共享配置文件; - 浏览器检查显示因IIS重定向导致无内容可用;
- 当前CORS配置如下:
app.UseCors(builder => { builder .AllowAnyOrigin() .AllowAnyMethod().SetIsOriginAllowed(origin => true) .AllowAnyHeader(); });
已尝试操作
- 检查文件夹权限(与同域名其他子域名应用权限一致);
- 清除浏览器缓存和Cookie,问题仍存在;
- 排查URL重写规则(已提供规则截图);
- 启用IIS失败请求跟踪(已提供截图);
- 在
Program.cs中添加app.UseExceptionHandler("/Home/Error")启用应用日志。
排查方向与解决方案建议
确认子域名绑定与SSL配置
检查IIS中该子域名的站点绑定,确保HTTPS绑定的证书正确,避免HTTP与HTTPS强制重定向冲突。比如若站点设置HTTP自动跳HTTPS,但子域名HTTPS配置异常,可能触发循环重定向。检查Blazor应用的路由与重定向配置
- 确认
Program.cs中app.UseHttpsRedirection()的配置是否适配子域名环境,可尝试显式指定HTTPS端口:app.UseHttpsRedirection(options => { options.HttpsPort = 443; }); - 排查Blazor页面路由或
NavLink是否存在错误的重定向逻辑。
- 确认
验证应用程序池身份权限
即便权限与其他应用一致,仍需确认应用程序池身份能否正常读取共享配置文件中的configEncKeyAes,解密失败可能导致应用内部重定向异常。排查URL重写规则冲突
仔细检查URL重写规则,避免出现子域名与主域名之间的循环重定向(比如子域名被重定向到主域名,又被主域名规则重定向回来)。深挖失败请求跟踪日志
从IIS失败请求跟踪截图中定位每次重定向的发起方(IIS模块或应用本身),跟踪URL变化,找到循环重定向的起始点。临时禁用CORS配置测试
当前CORS配置过于宽松,虽不直接导致重定向,但可临时注释CORS代码,排查是否为跨域相关的间接重定向问题。
内容的提问来源于stack exchange,提问作者Hady Elhady
相关产品推荐
相关产品推荐

