ASP.NET Core 应用发布到 IIS

本文详细介绍了在Windows平台上使用IIS部署ASP.NET Core 3.1应用的全过程,包括.NET Core SDK与托管捆绑包的安装、Visual Studio 2019发布配置、IIS站点及应用程序池设置,以及解决部署常见问题的方法。

Windows平台部署 Asp.Net Core 3.1.0,将 ASP.NET Core 应用发布到 IIS ,使用 IIS 在 Windows 上托管 ASP.NET Core

第一部分:本教程介绍如何在 IIS 服务器上托管 ASP.NET Core 应用。

  官方文档地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio

本教程涵盖以下主题:

  • 在 Windows Server 上安装.NET Core Hosting Bundle。
  • 在 IIS 管理器中创建 IIS 站点。
  • 部署 ASP.NET Core 应用。

 我概况一下,主要是安装2个文件:

       1、安装. NET Core SDK 安装在开发计算机上(dotnet-sdk-3.1.100-win-x64.exe)

      下载地址:https://dotnet.microsoft.com/download。选择 Download .NET Core SDK 这个版本进行安装就可以。

       2、安装 .NET Core 托管捆绑包(dotnet-hosting-3.1.0.exe)。使用以下链接下载安装程序:

                 下载地址:当前 .NET Core 托管捆绑包安装程序(直接下载)  https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer

        3、安装 Web Platform Installer。(这一步可以省略,我见.net core 2.0版本有人装这个,我的windows10安装了,windows Server服务器没有装 )。

                  下载地址:https://www.microsoft.com/web/downloads/platform.aspx

         4、重启电脑,或者在命令行执行以下命令(我建议以下命令执行完后重启电脑吧)。

         重启服务器或在命令行界面中执行 net stop was /y,后跟 net start w3svc 。

      

第二部分:关于发布、部署到iis的一些配置:

      1. 关于visual studio 2019发布.net core 3.0时一些配置

      发布-步骤1:选取发布目标:选择文件夹,然后点击高级: 

         

      发布-步骤2:目标框架:netcoreapp3.0, 部署模式:框架依赖,目标运行时:选择可移植。然后保存。     

           

     注意: 这里要重点说明:这里的目标运行时:win-x64或者win-x86 是你第一步,安装.net core sdk的运行时版本。并不是你操作系统的版本

   我们在第一部介绍时,就直接选择的是64位按照包,所以这个文章所有截图中都是选择64位运行时版本。

     

 

     发布-步骤3:点击发布按钮,就发布完成。

     

   2.部署到iis 。

          建议查看官方文档:将 ASP.NET Core 应用发布到 IIS ,https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio。

          这里截图列一下我的关键配置:

          1.应用程序池,选择无托管模式。我电脑是64位,选择“启用32位应用程序”为“false”。

            

      iis进程高级选项中,修改进程模块的“标识”,使用有管理员角色的账号登录。如果不使用管理员权限账号,我这里会报500.0 - ANCM In-Process Handler Load Failure。所以一定要改。

            

       2.权限配置:选择【网站】》选中【要更改的网站】,点击【基本设置】,弹出如下对话框。点击【连接为】,路径凭据中选择【特定用户】,点设置,输入管理员账号和密码。

            

  

第三部分:使用 IIS 在 Windows 上托管 ASP.NET Core  问题太多:

  官方文档https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/index?view=aspnetcore-3.1#iis-configuration 官方文档。

 

我部署过程中遇到的问题:如下

HTTP Error 500.0 - ANCM In-Process Handler Load Failure

Troubleshooting steps:

  • Check the system event log for error messages
  • Enable logging the application process' stdout messages
  • Attach a debugger to the application process and inspect

For more information visit: https://go.microsoft.com/fwlink/?LinkID=2028526

下图: 

               

部署后出现的以上错误的原因可能有以下几点:

    1、没有安装第一部分中的前2个安装包:.net core sdk(.net core sdk) 和 dotnet-hosting( .NET Core 托管捆绑包)

    2、发布或者部署时运行时版本没有选择正确。现在一般都是64位。注意详细的配置。  

    3、部署后给iis和应用程序池的权限不够。分别给iis网站和应用程序池,分管理员用户权限。

 

 其他参考:

       Windows平台部署Asp.Net Core应用(基于IIS和Windows服务两种模式) : https://blog.youkuaiyun.com/weixin_33757609/article/details/93693395 。

 

ASP.NET Core Web应用发布IIS,可按以下详细步骤进行: ### 1. 安装 .NET Core 托管捆绑包 安装 .NET Core 托管捆绑包(Hosting Bundle)是将 .NET Core 应用程序部署IIS 的必要步骤。托管捆绑包包含了多项关键组件,可确保 .NET Core 应用程序能在 IIS 上正确运行 [^1]。 ### 2. 配置 IIS 确保服务器上已安装并启用 IIS。在 Windows 服务器上,可以通过“服务器管理器”或“控制面板 - 程序功能 - 启用或关闭 Windows 功能”来安装 IIS 相关组件,如 Web 服务器(IIS)及其相关的功能模块。 ### 3. 发布 ASP.NET Core 应用 在 Visual Studio 中,右键单击项目,选择“发布”。在发布目标中,选择“文件夹”或“IIS、FTP 等”,根据需求配置发布设置,如目标文件夹路径等。点击“发布”,Visual Studio 会将应用的编译文件相关依赖项输出到指定的文件夹。 ### 4. 创建 IIS 网站或应用程序 打开 IIS 管理器,在“连接”窗口中,右键单击“网站”,选择“添加网站”或“添加应用程序”。 - **添加网站**:需要指定网站名称、物理路径(即前面发布应用指定的文件夹路径)、绑定信息(如域名、端口等)。 - **添加应用程序**:如果是在已有的网站下添加应用程序,需要指定应用程序的别名物理路径。 ### 5. 配置应用程序池 为发布应用程序选择或创建合适的应用程序池。确保应用程序池的 .NET CLR 版本设置为“无托管代码”,因为 ASP.NET Core 应用是自包含的,使用自己的运行。 ### 示例代码 以下是一个简单的 ASP.NET Core Web API 示例,展示了如何创建一个基本的控制器: ```csharp using Microsoft.AspNetCore.Mvc; namespace MyWebApi.Controllers { [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { [HttpGet] public IActionResult Get() { return Ok("Hello from ASP.NET Core Web API!"); } } } ``` ### 6. 测试应用 在浏览器中输入配置的网站域名或 IP 地址及端口,访问应用程序。如果一切配置正确,应该能看到应用的响应内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值