在IIS上部署ASP.NET Core Web API和Blazor Wasm详细教程

前言

前段时间我们完成了七天.NET 8 操作 SQLite 入门到实战的开发系列教程,有不少同学留言问如何将项目发布部署到IIS上面运行。本篇文章我们就一起来讲讲在IIS上部署ASP.NET Core Web API和Blazor Wasm。

前提条件

安装.NET Core SDK

IIS Web服务器安装配置

Internet Information Services (IIS) 是一种灵活、安全且可管理的 Web 服务器,用于托管 Web 应用(包括 ASP.NET Core)。

Windows10 IIS Web服务器安装配置详细教程: https://mp.weixin.qq.com/s/oaqypmpHOTLA9_5sF6-W7Q

安装 .NET Core 托管捆绑包

安装 .NET Core 托管捆绑包(Hosting Bundle)在将 .NET Core 应用程序部署到 IIS 时是一个必要的步骤。托管捆绑包包含了多项关键组件,这些组件确保 .NET Core 应用程序可以在 IIS 上正确运行。

https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-8.0.7-windows-hosting-bundle-installer

安装 URL 重写模块

重写 URL 必须使用 URL 重写模块。 此模块默认不安装,且不适用于安装为 Web 服务器 (IIS) 角色服务功能。 必须从 IIS 网站下载该模块。

如果没有安装 URL 重写模块,Blazor应用部署IIS会打不开页面:

URL 重写模块下载页:

https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads

重新打开IIS,即可看到,安装成功:

七天.NET 8 操作 SQLite 入门到实战详细教程

EasySQLite 项目源码地址

ASP.NET Core Web API发布部署

使用VS2022发布WebApi项目

WebApi项目部署IIS

IIS部署好会后访问地址提示找不到 localhost 的网页:

因为发布后运行的环境属于Production环境。

在发布成功的项目路径中找到web.config文件,添加如下配置:

在生产环境中展示 Swagger 通常是不推荐的,因为它可能会暴露你的 API 文档,增加安全风险。

你也可以直接修改这个Development环境下的过滤:

<aspNetCore processPath=".\BrowserBookmarks.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
  <environmentVariables>
  <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
 </environmentVariables>
</aspNetCore>

重新启用IIS项目,访问成功:

Blazor Wasm发布部署

使用VS2022发布WebUI项目

WebUI项目部署IIS

参考文章

相关推荐
追逐时光者6 小时前
.NET常见的几种项目架构模式,你知道几种?(附带使用情况投票)
【.net】·【c#】·【.net core】·【面试指南】
追逐时光者18 小时前
分享3款开源、免费的Avalonia UI控件库
【.net】·【开源项目】·【avalonia】
追逐时光者4 天前
C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)
【.net】·【c#】·【开源项目】·【.net core】·【技术前沿周刊】
追逐时光者6 天前
推荐3款卓越的 .NET 开源搜索组件库
【.net】·【开源项目】·【.net core】
追逐时光者7 天前
Entity Framework Plus: 让 EF Core 开发如虎添翼
【.net】·【c#】·【开源项目】·【.net core】·【ef core】
追逐时光者8 天前
浅谈 C# 中的顶级语句
【.net】·【c#】·【.net core】·【拾遗补漏】
追逐时光者9 天前
C#/.NET/.NET Core优秀项目和框架2024年8月简报
【.net】·【c#】·【开源项目】·【实用工具】·【.net core】·【每月简报】
追逐时光者10 天前
.NET 9 中 LINQ 新增的功能
【.net】·【c#】·【.net core】·【拾遗补漏】
追逐时光者11 天前
C#/.NET/.NET Core技术前沿周刊 | 第 4 期(2024年9.1-9.8)
【.net】·【c#】·【.net core】·【技术前沿周刊】
追逐时光者12 天前
Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具
【.net】·【c#】·【开源项目】·【git】