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

news/2024/11/17 19:37:53/文章来源:https://www.cnblogs.com/Can-daydayup/p/18349752

前言

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

前提条件

安装.NET Core SDK

  • https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0

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 入门到实战详细教程

  • 第一天 SQLite 简介
  • 第二天 在 Windows 上配置 SQLite 环境
  • 第三天 SQLite 快速入门
  • 第四天 EasySQLite 前后端项目框架搭建
  • 第五天引入 SQLite-net ORM 并封装常用方法
  • 第六天后端班级管理相关接口完善和Swagger自定义配置
  • 第七天BootstrapBlazor UI组件库引入(1)
  • 第七天Blazor班级管理页面编写和接口对接(2)
  • 第七天Blazor学生管理页面编写和接口对接(3)

EasySQLite 项目源码地址

  • GitHub 地址:https://github.com/YSGStudyHards/EasySQLite

ASP.NET Core Web API发布部署

使用VS2022发布WebApi项目

WebApi项目部署IIS

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

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

  • http://localhost:8899/swagger/index.html

在发布成功的项目路径中找到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

参考文章

  • https://learn.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-8.0&tabs=visual-studio
  • https://learn.microsoft.com/zh-cn/aspnet/core/blazor/host-and-deploy/webassembly?view=aspnetcore-8.0#install-the-url-rewrite-module

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/780106.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sublime Text 4 如何配置成完美的OI编辑器,优雅的打比赛

Sublime Text 完整配置编译文件点击新建编译系统(Tools -> Build system -> New build system)改为以下代码: Ubuntu : {"encoding": "utf-8","working_dir": "$file_path","shell_cmd": "g++ \"$file_name…

打造个性化Typora写作体验的必备插件

该文档为 typora_plugin 的 README 文档,为了方便国内的同学阅读而转载到本博客。该文档为 typora_plugin 的 README 文档,为了方便国内的同学阅读而转载到本博客。 原文地址:https://github.com/obgnail/typora_plugin 插件地址:可以去 GitHub 上下载,也可以在我的公众号…

使用蓝奏云备份大于一百兆的压缩包——分卷,手机

开源软件地址:Flut Renamer 1.分卷 2.更名 3.上传成功。

读零信任网络:在不可信网络中构建安全系统13运行时安全

读零信任网络:在不可信网络中构建安全系统13运行时安全1. 建立分发系统的信任 1.1. 分发是选择交付给下游使用者的工件的过程,构建系统会产生许多工件,其中一部分需要交付给下游使用者 1.2. 工件发布1.2.1. 在不改变工件内容的情况下指定一个工件作为权威发布版本的操作被称…

暑假模拟15

暑假模拟15 \(T_A\) 串串 简单字符串题,考虑枚举回文中心,哈希维护,没什么思维量,但是不好调。 wang54321 有高级 manacher 做法,大家快去膜拜她。 #include<bits/stdc++.h> using namespace std; #define ll long long const int N=1e6+100; const ll mod=10000010…

Kubernetes-Argo CD

Kubernetes高级工具Argo CD https://argo-cd.readthedocs.io/en/stable/ Argo CD 是针对 Kubernetes 的声明式 GitOps 持续交付工具。 Argo CD 是一个为 Kubernetes 而生的,遵循声明式 GitOps 理念的持续部署(CD)工具。 Argo CD 可在 Git 存储库更改时自动同步和部署应用程序…

Kubernetes高级工具Argo CD

Kubernetes高级工具Argo CD https://argo-cd.readthedocs.io/en/stable/ Argo CD 是针对 Kubernetes 的声明式 GitOps 持续交付工具。 Argo CD 是一个为 Kubernetes 而生的,遵循声明式 GitOps 理念的持续部署(CD)工具。 Argo CD 可在 Git 存储库更改时自动同步和部署应用程序…

第二课DOS命令行窗口

what,why,how 从是什么,为什么,怎么做(具体实际操作)来学习把握。 场景1: (逢年过节时候) -七大姑八大姨问:超子,你现在在做什么工作啊? -我:干软件工程师。(心想说java,亲戚肯定听不懂) -七大姑八大姨又追问:那什么是软件啊?(搞得跟面试官一样) -我:就你手…

观影记录

想吃parfait,不想赤石 无职转生 ~到了异世界就拿出真本事~(Part1) - 2021.01 请务必给我一个这种手办!虽然这是件非常恐怖的事。 洛琪希是44岁的少女。想要成为影之实力者! - 2022.10 不愧是暗影大人,《蒙面泳装团》首席 I need more 抛瓦!~ I am atomic!~ 想要成为影…

全网最适合入门的面向对象编程教程:34 Python的内置数据类型-Python常用复合数据类型:元组和命名元组

元组是不可变的序列类型,可以包含不同类型的元素。命名元组是元组的子类,它允许你为元组中的位置指定名称,从而使代码更加清晰,本文主要介绍了两种元组的使用方法和应用场景。全网最适合入门的面向对象编程教程:34 Python的内置数据类型-Python常用复合数据类型:元组和命…

Luogu P5089 元素周期表 / Codeforces 1012B Chemical table 题解 [ 并查集 ] [ 二分图 ] [ 图论建模 ] [ 棋盘覆盖问题 ]

双倍经验:Luogu P5089 元素周期表 ,CF1012B Chemical table:模拟赛搬的好题,有点厉害。赛时10min码的假贪心拿了五十多分,赢。 并查集思路 1 对于此类棋盘整行整列覆盖问题,有一个通用思路:把每一行和每一列看作一个点,那么原本棋盘上的格子就可以看作是连接这些点的边…

常见的Linux分支

市面上可以接触到的Linux发行版本都是基于Linux内核和GUN协议开发出来的,当然还有一切企业内部自己开发定制的OS不在讨论范围,本随笔用于记录市面上常见的分支家族,如果对某个分支特别感兴趣可以自行深入了解