文章元信息

一、前言:传统力量的回归

在上一篇中,我们体验了 Docker 的便捷。但刚子知道,很多小伙伴(特别是传统行业)面对的依然是 Windows Server 服务器。如果你不想折腾 Linux 命令,也不想引入 Docker 的学习成本,那么 IIS (Internet Information Services) 依然是那个最稳健、最亲切的选择。

今天我们就回到熟悉的 Windows 界面,完成一次传统但高效的部署。

二、第一步:发布程序包(本地操作)

在本地开发机器上,我们需要把代码编译成可以直接运行的文件。

  1. 右键点击你的项目(MyTodoApp),选择 “发布 (Publish)”
  2. 选择 “文件夹” 作为发布目标。
  3. 点击 “显示所有设置”
    • 配置:选择 Release(生产环境必须用 Release)。
    • 目标框架net8.0
    • 部署模式框架依赖
    • 目标运行时win-x64(关键点!必须是 Windows 64位)。
  4. 点击 “发布”

完成后,会在项目的 bin/Release/net8.0/publish 目录下生成一堆文件。这就是你要上传的“安装包”。

三、第二步:服务器环境准备(服务器操作)

通过远程桌面连接到你的 Windows 云服务器。

3.1 安装 .NET 8 Runtime

服务器必须安装 .NET 8 运行时。

  • 下载地址:.NET 8.0 Runtime
  • 刚子敲黑板:一定要下载 Hosting Bundle(托管包)!这会顺便装好 IIS 的 ASP.NET Core 模块,这是 IIS 运行 .NET Core 的关键!

3.2 启用 IIS

  1. 打开服务器管理器 -> 添加角色和功能
  2. 在“服务器角色”里勾选 Web 服务器 (IIS)

四、第三步:上传与配置(服务器操作)

4.1 上传文件

在服务器 C 盘下新建一个文件夹,例如 C:\MyWeb\MyTodoApp。 将第一步本地发布生成的文件,全部复制到这个服务器目录里。

4.2 IIS 创建站点

  1. 打开 IIS 管理器。
  2. 右键“网站” -> 添加网站
    • 网站名称MyTodoApp
    • 物理路径:指向刚才的 C:\MyWeb\MyTodoApp
    • 端口80(如果没有其他网站占用)。
  3. 点击确定。

【配图建议】 内容:IIS 添加网站对话框截图,展示物理路径和端口设置。 Alt文本:IIS 添加网站配置界面截图。

五、关键避坑:权限设置

这是 90% 新手在 Windows 部署时遇到“500 内部错误”的原因。

IIS 默认的运行账号(IIS_IUSRS)需要有权限读取你网站的文件。

  1. 找到 C:\MyWeb\MyTodoApp 文件夹。
  2. 右键 -> 属性 -> 安全 -> 编辑 -> 添加。
  3. 输入 IIS_IUSRS,点击“检查名称”,确定。
  4. 赋予该组 “读取和执行” 权限。

刚子小贴士: 如果需要写日志,记得单独给日志文件夹 IIS_IUSRS“写入” 权限。

六、验证与常见问题

在 IIS 管理器中,选中你的网站,点击“浏览网站”。如果能看到 Swagger 页面,恭喜部署成功!

常见报错 500.19:通常是没装 Hosting Bundle 或文件权限问题。 外网访问不了:去云服务商控制台,在 “安全组” 里放行 80 端口。

七、总结与预告

Windows IIS 部署虽然传统,但对于内部管理系统来说,它依然是目前最高效的方式。图形化的界面大大降低了运维门槛。

接下来,我们将挑战很多新手害怕,但也是互联网公司最主流的方案——Linux 部署。那才是架构师真正展现技术实力的舞台。