当前位置: 首页 > news >正文

ASP.Core3.1 WebAPI 发布到IIS

本篇文章简述如何在IIS中发布你的.Core 程序

1.打包

首先你要打包好你程序,如果你是Visual Studio开发的程序,那你右击你的项目点击发布
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如果你是Visual Code 开发的,那你在你的终端切换到你的目录然后执行命令

dotnet publish --configuration Release

然后可以在你的项目bin\Release\netcoreapp3.1\publish找到你的发布版本
如果你想发布到指定的路径

dotnet publish --configuration Release --output 你的路径

2.配置服务器

首先你要运行在IIS上面的话,因为是Asp.Core所以我们需要添加一个应用程序池,,NET Framework 版本选择.无代码托管
在这里插入图片描述
这里避坑,因为是.Core项目,所以应用池默认设置要把32位应用程序改为False,否则项目会提示:Http 500 错误
在这里插入图片描述
然后需要安装一个IIS的模块,必须要有这个模块才可以运行
在这里插入图片描述

就是在你的Core版本下面的,我这里以3.1版本为例子,其他版本同理
在这里插入图片描述
然后把你项目的SDK跟运行时都安装上

然后运行命令检测一下你的服务器是不是环境正确,一般不正确就重新安装一下

 dotnet --list-runtimes

在这里插入图片描述

因为我们的项目是Restful API,所以采用https
所以需要启动Kestrel服务器时需要配置HTTPS端点,指定服务器证书,并且默认的开发者证书
所以我们在命令行执行命令
运行以下命令来生成开发者证书:

 dotnet dev-certs https

如果你的操作系统是Windows或macOS,并且你想信任该证书,可以运行以下命令来信任证书:

 dotnet dev-certs https --trust

3.配置IIS

首先我们在我们的IIS服务器新建一个自建证书,后期生产环境有SSL证书直接用你的SSL证书就行,就不需要自建
在这里插入图片描述
然后添加一个网站,选择你刚刚的项目路径,应用程序池选择我们刚刚添加的那个无代码托管的应用程序池,其他根据自己的需求配置
在这里插入图片描述
然后运行项目
在这里插入图片描述
到这项目基本发布好了

这里在避坑一下,原先以为到这里就好了,当时发现调用非Get Post请求的接口的时候提示:405错误
在这里插入图片描述
一开始我以为是HTTP请求谓词的原因,找遍IIS的配置都没发现问题
在这里插入图片描述
最后发现是"WebDAV,如果你的项目用不到"WebDAV的话就删除,要是你的IIS有其他"WebDAV的项目,那就在你的web.config
添加

 <modules runAllManagedModulesForAllRequests="true">  <remove name="WebDAVModule" />  
</modules>  
![在这里插入图片描述](https://img-blog.csdnimg.cn/8c8423540a5245d0bddba37f67757aa0.png)

至此,你的,CoreAPI 程序已经成功发布到IIS上面,个人还是比较推荐用nginx,因为毕竟.Core都是跨平台,下次出如果在nginx环境下搭建你的Core程序

http://www.lryc.cn/news/188836.html

相关文章:

  • MyBatisPlus属性自动填充和乐观锁插件+查询删除操作+整合SpringBoot出现问题解决
  • 软件测试/测试开发丨App自动化—CSS 定位与原生定位
  • c语言:通讯录管理系统(文件版本)
  • Android Studio 配置Git SVN忽略文件
  • 独享IP地址的层级划分和管理:打造稳定高效的网络架构
  • js中async的作用
  • 什么是信创测试?信创测试工具有哪些?
  • 健康医疗类APP在高需求快速发展背景下,商业化如何快速破局增收?
  • java开源商城免费搭建 VR全景商城 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商城 分销商城 短视频商城
  • k8spod就绪检查失败
  • 【数据结构】链表详解
  • STM32使用HAL库驱动DS18B20
  • echarts折线图设置背景颜色
  • spring boot+ vue+ mysql开发的一套厘米级高精度定位系统源码
  • 【初试396分】西北工业大学827学长经验分享
  • 【Qt之信号和槽】对象多层嵌套后,高效使用信号和槽
  • 搬砖日记:vue2 用require引入图片项目编译失败
  • 国内外都可以使用的【免费AI工具】,实用性满满
  • 银河麒麟服务器x86安装ntp客户端,并配置成功可以同步时间
  • vue踩的坑:属性报undefined错误问题汇总
  • Ubuntu22.04.3安装教程
  • Vue2和Vue3的emit、props、watch等知识点对比
  • HTML 笔记:初识 HTML(HTML文本标签、文本列表、嵌入图片、背景色、网页链接)
  • 使用弹性盒子flex对html进行布局和动态计算视口高度
  • 华为云云耀云服务器L实例评测|华为云耀云服务器L实例评测用例(五)
  • uniapp-vue3微信小程序实现全局分享
  • Qt如何实现动态背景-视频背景
  • vue按键全屏和F11全屏共存
  • springboot就业信息管理系统springboot32
  • 深入探讨芯片制程设备:从原理到实践