Blazor Server部署IIS后加载Radzen.Blazor.js遇403禁止错误求助
解决Blazor Server部署IIS后的403及相关错误
一、修复Radzen.Blazor.js的403禁止错误
- 启用IIS静态内容功能:
- 打开服务器管理器 -> 添加角色和功能 -> 找到「Web服务器(IIS)」->「Web服务器」->「常见HTTP功能」,确保勾选静态内容。
- 执行命令
iisreset重启IIS服务。
- 验证子目录权限:
确认IIS应用池身份(默认ApplicationPoolIdentity)对站点根目录下的wwwroot/_content/Radzen.Blazor/文件夹拥有读取权限,需递归设置子目录权限,不要仅设置根目录。
二、解决WebSocket连接失败与Blazor电路异常
- 启用IIS WebSocket协议:
- 服务器管理器 -> 添加角色和功能 ->「Web服务器(IIS)」->「应用程序开发」,勾选WebSocket协议。
- 重启IIS及对应应用池。
- 核对Blazor核心配置:
在Program.cs中确保正确注册Blazor服务与端点:// 注册Blazor Server服务 builder.Services.AddServerSideBlazor(); // 注册Radzen组件服务(如果使用) builder.Services.AddRadzenComponents(); // 配置端点 app.MapBlazorHub(); app.MapFallbackToPage("/_Host");
三、修复DELETE请求_blazor接口的403错误
- 检查IIS请求筛选规则:
- 打开IIS管理器 -> 选中目标站点 -> 功能视图 -> 打开「请求筛选」。
- 切换到「HTTP谓词」选项卡,确认
DELETE方法在允许列表中,若缺失则添加。
- 验证CORS配置(若有):
如果Program.cs中配置了CORS,确保允许DELETE方法:builder.Services.AddCors(options => { options.AddPolicy("AllowAll", policy => { policy.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader(); }); }); app.UseCors("AllowAll");
四、解决"No interop methods are registered for renderer 1"错误
该错误是连锁问题——Radzen的JS文件因403未加载,导致interop方法无法注册。解决前面的静态资源权限问题后,此错误会自动消失。
额外排查项
- 确认应用池的.NET CLR版本设置为无托管代码(Blazor Server属于ASP.NET Core应用)。
- 检查站点URL重写规则,确保未拦截
_content/或_blazor路径的请求。 - 查看IIS日志(默认路径
C:\inetpub\logs\LogFiles\W3SVC*),获取403错误的详细触发原因,精准定位问题。
内容的提问来源于stack exchange,提问作者djjailbreak
相关产品推荐
相关产品推荐

