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

前言

前段时间我们完成了七天.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.rhkb.cn/news/398179.html

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

相关文章

【学习笔记】Day 10

一、进度概述 1、《地震勘探原理》第三章 二、详情 3.1 野外工作概述 主要介绍地上与海上两种情况下的测量方法&#xff0c;这里不做详解&#xff0c;需要就看书。 其中简况分为&#xff1a;试验工作&#xff0c;生产工作过程&#xff0c;干扰波调查&#xff0c;干扰…

allegro PCB设计心得笔记(四) -- 显示坐标原点和更改默认产品选项

一、修改坐标原点 Allegro PCB设计过程中&#xff0c;有时需要修改坐标原点&#xff0c;但是PCB文件不显示坐标原点&#xff0c;无法确认已修改的坐标原点是否已经修改好。 显示PCB原点的设置方法如下&#xff1a; Setup -> Design Parameter Editor&#xff0c;如下图所示&…

[C++][opencv]基于opencv实现photoshop算法图像剪切

【测试环境】 vs2019 opencv4.8.0 【效果演示】 【核心实现代码】 //图像剪切 //参数&#xff1a;src为源图像&#xff0c; dst为结果图像, rect为剪切区域 //返回值&#xff1a;返回0表示成功&#xff0c;否则返回错误代码 int imageCrop(InputArray src, OutputArray dst,…

8.3.数据库基础技术-关系代数

并&#xff1a;结果是两张表中所有记录数合并&#xff0c;相同记录只显示一次。交&#xff1a;结果是两张表中相同的记录。差&#xff1a;S1-S2,结果是S1表中有而S2表中没有的那些记录。 笛卡尔积&#xff1a;S1XS2,产生的结果包括S1和S2的所有属性列&#xff0c;并且S1中每条记…

大数据知识点

VMWare 设置网段 虚拟机设置 JDK部署 云平台 创建VPC 找到阿里云控制台里的VPC&#xff0c;点击专有网络 安全组 搁置…有需要再使用&#xff0c;因为每月要花200左右 大数据 数据导论

merfish数据进行可视化

参考博客 https://scanpy.readthedocs.io/en/stable/tutorials/spatial/basic-analysis.html example import scanpy as sc import pandas as pd import matplotlib.pyplot as plt import seaborn as snscoordinates pd.read_excel("./data/pnas.1912459116.sd15.xlsx…

分布式性能监控之SkyWalking

Apache SkyWalking 是一款开源的分布式应用性能监控和管理工具&#xff0c;旨在为微服务、云原生和容器化环境提供全面的性能分析和监控解决方案。它在分布式系统中起着关键作用&#xff0c;帮助开发者和运维人员实时监控应用程序的性能、定位问题&#xff0c;并优化系统。以下…

计算机的错误计算(六十)

摘要 用另一种方法计算计算机的错误计算&#xff08;五十五&#xff09;中案例&#xff1a;先使自变量与 取余&#xff0c;再计算取余后的余弦值&#xff0c;这时&#xff0c;得到了不同的输出。因此&#xff0c;即使不清楚正确结果&#xff0c;Python 与 Visual Studio 也各自…

加强混合工作时代的组织网络安全态势

随着组织转向采用和实施混合和远程工作模式&#xff0c;网络安全的重要性从未如此重要。虽然工作场所的这种演变提供了灵活性并有望提高生产力&#xff0c;但它也带来了组织无法忽视的无数网络安全挑战。多样化工作环境的整合需要强大的安全措施、创新的保护策略和警惕的文化&a…

Python | Leetcode Python题解之第332题重新安排行程

题目&#xff1a; 题解&#xff1a; class Solution:def findItinerary(self, tickets: List[List[str]]) -> List[str]:def dfs(curr: str):while vec[curr]:tmp heapq.heappop(vec[curr])dfs(tmp)stack.append(curr)vec collections.defaultdict(list)for depart, arri…

C++基础知识:类作为友元,以及相关代码案例

1.类作为友元&#xff0c;以及相关代码案例 #include<iostream> using namespace std;#include<string>//类做友元 class Building; class GoodGay { public:GoodGay();void visit();//参观函数 访问Building中的属性Building* building; };class Building {//加了…

从零搭建React全家桶框架教程:快速搭建react+react-router+redux项目

搭建基本的react项目 我们使用create-react-app(npm要全局安装create-react-app)快速创建一个react项目&#xff1a; npx create-react-app my-app cd my-app npm start启动成功后&#xff0c;就可以看到react的页面啦。接下来我们稍稍调整下项目的目录结构和页面内容&#xff…

Windows Server 使用Docke部署挂载问题(安装后无限重启崩溃迁移镜像到D盘打包镜像)

文章目录 前言一、问题&#xff1a;无限重启崩溃尝试&#xff1a;权限不足&#xff1f;解决&#xff1a;用Docker-Compose安装并挂载数据卷 二、问题&#xff1a;镜像磁盘默认挂载在C盘尝试&#xff1a;通过修改Docker修改镜像磁盘到D盘解决&#xff1a;通过修改docker的settin…

深度学习 —— 个人学习笔记14(ResNet、DenseNet)

声明 本文章为个人学习使用&#xff0c;版面观感若有不适请谅解&#xff0c;文中知识仅代表个人观点&#xff0c;若出现错误&#xff0c;欢迎各位批评指正。 二十八、残差网络&#xff08; ResNet &#xff09; import torch import torchvision import time from torch impo…

Nginx代理websocket连接

文章目录 Nginx代理websocket连接1. 引言2. 为什么需要Nginx代理WebSocket3. Nginx代理WebSocket的实现步骤步骤1&#xff1a;确保Nginx支持WebSocket步骤2&#xff1a;修改Nginx配置文件步骤3&#xff1a;重启Nginx服务步骤4&#xff1a;验证配置 Nginx代理websocket连接 1. …

AI学习记录 - torch 的 matmul ,也就是点积的一些试验

有用大佬们点点赞 1、两个一维向量点积 &#xff0c;求 词A 与 词A 之间的关联度 2、两个词向量之间求关联度&#xff0c;求 : 词A 与 词A 的关联度 5 词A 与 词B 的关联度 11 词B 与 词A 的关联度 11 词B 与 词B 的关联度 25 刚刚好和矩阵乘法符合&#xff1a; 3、什么是…

Python | Leetcode Python题解之第329题矩阵中的最长递增路径

题目&#xff1a; 题解&#xff1a; class Solution:DIRS [(-1, 0), (1, 0), (0, -1), (0, 1)]def longestIncreasingPath(self, matrix: List[List[int]]) -> int:if not matrix:return 0rows, columns len(matrix), len(matrix[0])outdegrees [[0] * columns for _ in…

opencv移植

1 简介 本机环境&#xff1a;windows10 64位&#xff1b;QT&#xff1a;5.14.2 &#xff1b;本次移植不涉及源码编译&#xff0c;直接使用的编译好的源码。 2 MINGW编译环境 2.1 库文件下载 编译好的库文件下载地址&#xff1a;IJustLoveMyself/OpenCV-MinGW-Build: &#…

SPRING07_自动装配如何加强、@Autowired注解debug分析、总结

文章目录 ①. Spring启动一行代码:②. ApplicationContex增强功能③. 自动装配如何装配进来④. Autowired自动注入细节xml版⑤. Autowired注解版分析⑥. 总结一下 ①. Spring启动一行代码: ①. 创建一个IOC容器,传入容器的xml配置文件,Spring在整个创建容器的过程中全部都准备…

日期类比较大小和加减

日期比较大小 先定义一个日期类&#xff0c;这里包含年月日&#xff0c;这里头文件和源文件分离 重载符号 1.operator> 先声明函数 这里大于可以把*this> d 的情况全部列举出来 bool date::operator>(const date& d) {if (_year > d._year){return true;}e…