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

.NET Core 7 Blazor部署IIS遇404及WebSocket连接失败问题求助

针对Blazor Web应用部署IIS后的问题解决

一、静态资源(BlazorUI.styles.css、site.css)404错误解决

  • 确认发布包包含静态文件:检查项目发布后的wwwroot目录,确认css文件存在;若缺失,修改项目文件(.csproj)添加如下配置后重新发布:
    <ItemGroup>
      <Content Include="wwwroot/**/*" />
    </ItemGroup>
    
  • 配置IIS静态文件处理:
    1. 确保IIS已安装「静态文件」模块(服务器管理器→添加角色和功能→Web服务器→常用HTTP功能→静态文件)。
    2. 在站点的web.config中添加MIME类型映射,避免资源识别错误:
    <staticContent>
      <mimeMap fileExtension=".css" mimeType="text/css" />
    </staticContent>
    
  • 修正应用程序池设置:将站点对应的应用程序池「.NET CLR版本」设置为「无托管代码」,适配.NET Core应用。
  • 检查Base Href配置:若应用部署在IIS虚拟目录下,修改wwwroot/index.html中的<base href="/" />为对应虚拟路径,例如部署在/BlazorApp/下则改为:
    <base href="/BlazorApp/" />
    

二、WebSocket连接失败、长轮询 fallback问题解决

  • 安装IIS WebSocket协议:在服务器管理器中添加「WebSocket协议」(Web服务器→应用程序开发→WebSocket协议),这是Blazor SignalR通信依赖的核心组件。
  • 启用WebSocket支持:在web.config的<aspNetCore>节点中添加配置,确保WebSocket功能被启用:
    <aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="false" hostingModel="inprocess">
      <serverSettings>
        <applicationSettings>
          <add key="aspNetCore.websockets.enabled" value="true" />
        </applicationSettings>
      </serverSettings>
    </aspNetCore>
    
  • 排查网络与代理限制:若服务器有防火墙或前端部署了反向代理(如ARR),需确保80/443端口允许WebSocket流量,且代理服务器已启用WebSocket转发功能。

关于Nginx配置路径的说明

你看到的/etc/nginx/sites-available是Linux系统下Nginx的配置目录,但你当前使用的是Windows环境的IIS,无需关注该路径,按照上述IIS相关配置操作即可。

内容的提问来源于stack exchange,提问作者ahmed abdelaziz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:42:53