『部署实操』使用 IIS 在 Windows 上托管 ASP.NET Core

简介: 使用 IIS 在 Windows 上托管 ASP.NET Core

 IIS 配置

Windows Server 操作系统

启用 Web 服务器 (IIS) 服务器角色并建立角色服务。

    1. 通过“管理”菜单或“服务器管理器”中的链接使用“添加角色和功能”向导。 在“服务器角色”步骤中,选中“Web 服务器(IIS)”框 。
      image.gif编辑
    2. 在“功能”步骤后,为 Web 服务器 (IIS) 加载“角色服务”步骤。 选择所需 IIS 角色服务,或接受提供的默认角色服务。
      image.gif编辑
      Windows 身份验证(可选)
      若要启用 Windows 身份验证,请依次展开以下节点:“Web 服务器” > “安全”。 选择“Windows 身份验证”功能。 有关详细信息,请参阅 Windows 身份验证 <windowsAuthentication> 和配置 Windows 身份验证。
      Websocket(可选)
      Websocket 支持 ASP.NET Core 1.1 或更高版本。 若要启用 WebSocket,请依次展开以下节点:“Web 服务器” > “应用开发”。 选择“WebSocket 协议”功能。 有关详细信息,请参阅 WebSockets。
    3. 继续执行“确认”步骤,安装 Web 服务器角色和服务。 安装 Web 服务器 (IIS) 角色后无需重启服务器/IIS。

    Windows 桌面操作系统

    启用“IIS 管理控制台”和“万维网服务”。

      1. 导航到“控制面板”>“程序”>“程序和功能”>“打开或关闭 Windows 功能”(位于屏幕左侧) 。
      2. 打开“Internet Information Services”节点。 打开“Web 管理工具”节点。
      3. 选中“IIS 管理控制台”框。
      4. 选中“万维网服务”框。
      5. 接受“万维网服务”的默认功能,或自定义 IIS 功能。
        Windows 身份验证(可选)
        若要启用 Windows 身份验证,请依次展开以下节点:“万维网服务” > “安全”。 选择“Windows 身份验证”功能。 有关详细信息,请参阅 Windows 身份验证 <windowsAuthentication> 和配置 Windows 身份验证。
        Websocket(可选)
        Websocket 支持 ASP.NET Core 1.1 或更高版本。 若要启用 WebSocket,请依次展开以下节点:“万维网服务” > “应用开发功能”。 选择“WebSocket 协议”功能。 有关详细信息,请参阅 WebSockets。
      6. 如果 IIS 安装需要重新启动,则重新启动系统。

      image.gif编辑

      安装 .NET Core 托管捆绑包

      在托管系统上安装 .NET Core 托管捆绑包。 捆绑包可安装 .NET Core 运行时、.NET Core 库和 ASP.NET Core 模块。 该模块允许 ASP.NET Core 应用在 IIS 后面运行。

      重要

      如果在 IIS 之前安装了托管捆绑包,则必须修复捆绑包安装。 在安装 IIS 后再次运行托管捆绑包安装程序。

      如果在安装 64 位 (x64) 版本的 .NET Core 之后安装了 Hosting Bundle,则可能看上去缺少 SDK(未检测到 .NET Core SDK)。 要解决此问题,请参阅 ASP.NET Core 项目故障排除和调试。

      下载

        1. 导航到 .NET Core (.NET Downloads (Linux, macOS, and Windows))页面。
        2. 选择所需的 .NET Core 版本。
        3. 在“运行应用 - 运行时”列中,查找所需的 .NET Core 运行时版本的那一行。
        4. 使用“托管捆绑包”链接下载安装程序

        image.gif编辑

        下载后确认IIS的模块

        image.gif编辑

        image.gif编辑

        使用 Visual Studio 进行发布时安装 Web 部署

        使用 Web 部署将应用部署到服务器时,请在服务器上安装最新版本的 Web 部署。 要安装 Web 部署,请使用 Web 平台安装程序 (WebPI) 或直接从 Microsoft 下载中心获取安装程序。 建议使用 WebPI。 WebPI 为托管提供程序提供独立的安装程序和配置。

        创建 IIS 站点

          1. 在托管系统上,创建一个文件夹以包含应用已发布的文件夹和文件。 在接下来的步骤中,文件夹路径作为应用程序的物理路径提供给 IIS。 有关应用程序部署文件夹和文件布局的详细信息,请参阅 ASP.NET Core 目录结构。
          2. 在 IIS 管理器中,打开“连接”面板中的服务器节点。 右键单击“站点”文件夹。 选择上下文菜单中的“添加网站”。
          3. 提供网站名称,并将物理路径设置为应用的部署文件夹 。 提供“绑定”配置,并通过选择“确定”创建网站:
            image.gif编辑
            警告
            不应使用顶级通配符绑定(http://*:80/ 和 http://+:80)。 顶级通配符绑定可能会为应用带来安全漏洞。 此行为同时适用于强通配符和弱通配符。 使用显式主机名而不是通配符。 如果可控制整个父域(区别于易受攻击的 *.com),则子域通配符绑定(例如,*.mysub.com)不具有此安全风险。 有关详细信息,请参阅 rfc7230 第 5.4 条。
          4. 在服务器节点下,选择“应用程序池”。
          5. 右键单击站点的应用池,然后从上下文菜单中选择“基本设置”。
          6. 在“编辑应用程序池”窗口中,将“.NET CLR 版本”设置为“无托管代码”:
          7. image.gif编辑
          8. ASP.NET Core 在单独的进程中运行,并管理运行时。 ASP.NET Core 不依赖桌面 CLR (.NET CLR) 加载:将启动 .NET Core 的 Core 公共语言运行时 (CoreCLR) ,在工作进程中托管应用。 将“.NET CLR 版本”设置为“无托管代码”是可选步骤,但建议采用此设置。
          9. ASP.NET Core 2.2 或更高版本:对于使用 进程内托管模型的 64 位 (x64) 独立部署,为 32 位 (x86) 进程禁用应用池。
            在 IIS 管理器 >“应用程序池”的“操作”侧栏中,选择“设置应用程序池默认设置”或“高级设置”。 找到“启用 32 位应用程序”并将值设置为 False。 此设置不会影响针对进程外托管部署的应用。
          10. 确认进程模型标识拥有适当的权限。
            如果将应用池的默认标识(“进程模型” > “Identity”)从 ApplicationPoolIdentity 更改为另一标识,请确保新标识拥有对应用文件夹、数据库和其他所需资源的必需访问权限 。 例如,应用池需要对文件夹的读取和写入权限,以便应用在其中读取和写入文件。

          Windows 身份验证配置(可选)

          有关详细信息,请参阅配置 Windows 身份验证。

          部署应用

          将应用程序部署到 IIS 物理路径文件夹中,该文件夹是在创建 IIS 站点部分中创建的。 Web 部署是建议使用的部署机制,但有几个选项可以将应用程序从项目的发布文件夹移动到托管系统的部署文件夹。

          在 Visual Studio 内使用 Web 部署

          要了解如何创建用于 Web 部署的发布配置文件,请参阅用于 ASP.NET Core 应用部署的 Visual Studio 发布配置文件。 如果托管提供程序提供了发布配置文件或支持创建发布配置文件,请下载配置文件并使用 Visual Studio 的“发布”对话框将其导入:

          image.gif编辑

          在 Visual Studio 之外使用 Web 部署

          也可以在 Visual Studio 之外从命令行使用 Web 部署。 有关详细信息,请参阅 Web Deployment Tool(Web 部署工具)。

          Web 部署的替代方法

          有多种方法可将应用移动到托管系统,例如手动复制、Xcopy、Robocopy 或 PowerShell,可使用其中任何一种方法。

          有关将 ASP.NET Core 部署到 IIS 的详细信息,请参阅面向 IIS 管理员的部署资源部分。

          浏览网站

          将应用部署到托管系统后,向应用的一个公共终结点发出请求。

          在以下示例中,站点被绑定到端口 80 上 www.mysite.com 的 IIS 主机名中。 向 http://www.mysite.com 发出请求:

          image.gif编辑

          相关文章
          |
          12月前
          |
          开发框架 .NET C#
          ASP.NET Core Blazor 路由配置和导航
          大家好,我是码农刚子。本文系统介绍Blazor单页应用的路由机制,涵盖基础配置、路由参数、编程式导航及高级功能。通过@page指令定义路由,支持参数约束、可选参数与通配符捕获,结合NavigationManager实现页面跳转与参数传递,并演示用户管理、产品展示等典型场景,全面掌握Blazor路由从入门到实战的完整方案。
          817 6
          |
          开发框架 .NET 开发者
          简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
          Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:&lt;https://github.com/khellang/Scrutor&gt;
          976 5
          |
          存储 数据安全/隐私保护 Windows
          Windows中部署网盘神器 Filebrowser
          ZeroNews (零讯)内网穿透赋予 FileBrowser 任意位置互联网访问的能力,无需用户具备固定公网IP,提供专用的访问域名,将 FileBrowser 转变为公有云盘,实现多用户在线协同工作。
          |
          JSON 安全 数据可视化
          Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
          Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
          6924 0
          |
          Linux 虚拟化 Docker
          Linux服务器部署docker windows
          在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
          2805 1
          |
          Ubuntu 网络协议 Linux
          快速部署WSL(Windows Subsystem for Linux)
          WSL提供了一种轻量级的方法,使开发者能够在Windows上无缝运行Linux环境。通过本文介绍的步骤,可以快速安装、配置和使用WSL,以满足开发和测试的需求。
          3550 8
          |
          开发框架 算法 中间件
          ASP.NET Core 中的速率限制中间件
          在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
          594 1
          |
          12月前
          |
          安全 数据安全/隐私保护 虚拟化
          Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
          Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
          2790 2
          Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
          |
          12月前
          |
          安全 Unix 物联网
          Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
          Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
          1203 0
          Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
          |
          运维 安全 网络安全
          Windows Server 2019拨号“找不到设备”?Error 1058解决指南
          Windows Server 2019拨号报错1058?别急!这不是硬件故障,而是关键服务被禁用。通过“服务依存关系”排查,依次启动“安全套接字隧道协议”“远程接入连接管理”和“路由与远程访问”服务,仅需4步即可恢复PPPoE或VPN拨号功能,轻松解决网络中断问题。
          893 1