Windows Server部署时出现404错误求助:React+.NET Core前后端
React + ASP.NET Core 部署到 Windows Server 404错误排查方案
1. IIS基础配置检查
- 确认站点物理路径指向ASP.NET Core发布目录:路径需包含
web.config、项目dll文件,切勿指向React源码或未构建的目录。 - 安装对应版本的ASP.NET Core托管捆绑包:Windows Server必须安装与项目.NET Core版本匹配的托管捆绑包,否则IIS无法处理.NET Core请求。
- 应用池设置:将应用池的.NET CLR版本设为无托管代码,ASP.NET Core为自托管模式,无需IIS托管代码。
2. React SPA路由兼容处理
React单页应用的客户端路由在IIS下刷新或直接访问子路由会触发404,需在web.config中添加重写规则:
<system.webServer> <rewrite> <rules> <rule name="SPA Fallback" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="/index.html" /> </rule> </rules> </rewrite> </system.webServer>
- 确保React已正确构建:执行
npm run build生成build目录,将该目录下的所有文件复制到ASP.NET Core项目的wwwroot文件夹中。
3. 后端API路由验证
- 检查API请求路径:部署后需将本地的
localhost地址替换为服务器域名/IP,避免因路径错误导致API请求404。 - 查看.NET Core日志:在
appsettings.json中设置Logging.LogLevel.Default为Debug,部署后查看日志文件(默认在Logs目录),排查路由匹配失败细节。
4. 文件权限排查
- 给IIS应用池身份分配发布目录的读写权限:重点确保
wwwroot静态文件目录和日志目录的权限正常,权限不足会导致文件无法读取。
附错误截图:
内容的提问来源于stack exchange,提问作者Md. Shafiqul Islam
相关产品推荐
相关产品推荐

