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

如何将Angular 17 SSR部署到IIS?部署后无法访问求指导

Angular 17 SSR IIS 部署故障排查指南

1. 检查IIS必需组件

  • 确认已安装URL重写模块和iisnode模块:这两个是IIS托管Node.js服务的核心组件,缺失会导致请求无法转发到Angular SSR服务。
  • 服务器需安装与开发环境版本一致的Node.js,避免版本兼容问题。

2. 核对文件结构与权限

  • 确认文件结构:ngssrdemo目录下需包含browser、server子文件夹,main.js、web.config,以及package.json(若打包时未携带依赖,需在服务器目录执行npm install安装依赖)。
  • 给ngssrdemo文件夹添加IIS_IUSRS和IUSR用户的读写权限,防止因权限不足无法读取文件或启动服务。

3. 验证Node服务能否正常启动

  • 打开服务器命令提示符,进入ngssrdemo目录,执行node main.js:
    • 若出现Listening on http://localhost:xxxx类输出,说明服务本身正常,问题出在IIS配置。
    • 若启动报错,根据提示修复(如缺失依赖则运行npm install,端口占用则修改SSR服务端口)。

4. 修正web.config配置

替换现有web.config为以下内容(注意修改Node.js实际安装路径):

<configuration>
  <system.webServer>
    <handlers>
      <add name="iisnode" path="main.js" verb="*" modules="iisnode" />
    </handlers>
    <rewrite>
      <rules>
        <rule name="Angular SSR" 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="main.js" />
        </rule>
      </rules>
    </rewrite>
    <!-- 替换为服务器上Node.js的实际安装路径 -->
    <iisnode nodeProcessCommandLine="C:\Program Files\nodejs\node.exe" />
  </system.webServer>
</configuration>

5. 查看详细错误日志

  • 在IIS管理器中选中目标网站,点击右侧“错误页”,设置“编辑功能设置”为“详细错误”,刷新页面获取具体报错信息。
  • 查看网站日志(路径可在IIS“日志”功能中查看),定位请求失败的具体原因。

内容的提问来源于stack exchange,提问作者Bijith NV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:47:27