【C#】WebAPI,在Windows IIS平台部署

目录

前言

一、技术介绍

1.1 IIS概念

1.2 WebApi概念

二、部署准备

2.1 Visual Studio本地项目配置

2.2 运行调试,以本地 localhost(或127.0.0.1)形式访问

2.3 运行调试,以本地IP(192.168.6.152)形式访问

三、详细步骤

3.1 打包发布

3.2 安装IIS(Internet信息服务)

3.3 配置IIS(Internet信息服务)

3.4 启动IIS,进行集成测试

四、项目异常处理

4.1 500.19-Internal Server Error

4.2 500.21-Internal Server Error

五、项目展示

4.1 文件下载

4.2 读取二维码标签

六、系列文章


前言

我能抽象出整个世界,但是我不能抽象你。 想让你成为私有常量,这样外部函数就无法访问你。 又想让你成为全局常量,这样在我的整个生命周期都可以调用你。 可惜世上没有这样的常量,我也无法定义你,因为你在我心中是那么的具体。

哈喽大家好,本专栏为【项目实战】专栏,有别于【底层库】专栏,我们可以发现增加 了『问题描述』、『项目展示』章节,十分符合项目开发流程,让读者更加清楚项目解决的问题、以及产品能够达到的效果。本专栏收纳项目开发过程的解决方案,是我项目开发相对成熟、可靠方法的提炼,我将这些问题的解决思路梳理,撰写本文分享给大家,大家遇到类似问题,可按本文方案处理。

本专栏会持续更新,不断完善,专栏文章关联性较弱(文章之间依赖性较弱,没有阅读顺序)。大家有任何问题,可以私信我。如果您对本专栏感兴趣,欢迎关注吧,我将带你用最简洁的代码,实现复杂的功能。

提示:本专栏为项目实战篇,未接触过项目开发的学生理解困难,不建议阅读。

一、技术介绍

1.1 IIS概念

互联网信息服务(英语:Internet Information Services,简称IIS),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。Apache是其在网络服务软件中的主要竞争者。

1.2 WebApi概念

WebAPI是一个框架,可以轻松构建HTTP服务,覆盖广泛的客户端,包括浏览器和移动设备,WebAPI是在.NetFramwork上构建RESTful程序的理想平台。

以上是官网的解释,当前最新的.net 6,在跨平台 .net core也可以开发WebApi,不单单只是  .NetFramwork平台了。这两大平台编译生成的包,并不通用,需要注意。

二、部署准备

WebAPI在项目发布部署前,我们要首先要确保没有bug,可以正常运行,以下是本地调试的步骤,如果项目已经测试OK,可以跳过。

2.1 Visual Studio本地项目配置

编写好WEBAPI代码,开始本地调试。

步骤:右键选中项目-->【属性】-->【Web】,设置Web访问的端口号,创建虚拟目录。

端口号没有具体规定,不冲突即可,往大的编,因为低位的端口号被计算机基础服务所占用。

2.2 运行调试,以本地 localhost(或127.0.0.1)形式访问

①点击工具栏【IIS Express】

②浏览地址输入接口,看是否可以访问。

2.3 运行调试,以本地IP(192.168.6.152)形式访问

127.0.0.1是回路地址,来检验本机TCP/IP协议栈,实际使用过程中服务端不在本机,是外部地址,要用IP地址测试。

我先做个演示,CMD输入以下命令找到本机IP:

Ipconfig --all

“红色框框”显示本机IP为192.168.6.152。外部用户采用IP+端口号访问,如下图浏览器访问不了,400错误。

解决方案:

  • 打开项目源码目录-->依次找 .vs\config\ applicationhost.config,如果找不到需要开启隐藏文件夹显示功能。
  • 找到< bindings>添加一行,IP为本机IP地址,如下图所示:

  • 重启VS(一定要重启),并以管理员身份运行调试。注意看右下角任务栏,IIS Express出现了本机IP。

  • 回到浏览器,刷新请求,ok。


三、详细步骤

本节我们开始进行正式发布。

3.1 打包发布

选中项目解决方案-->【发布】-->【IIS、FTP等】-->【发布】-->发布方法选“文件系统”、选择发布的路径。

我选择路径:

D:\WEBAPI

下一步,勾选“在发布前删除所有现有文件”。

保存,等待发布完成。此时我们路径下会得到几个文件。

3.2 安装IIS(Internet信息服务)

本文介绍在IIS上部署,当然你也可以选择Tomcat,原理都一样,承载软件。

 安装IIS功能

控制面板-->程序和功能-->启用和关闭Windows功能-->IIS相关功能勾选。如下图:

3.3 配置IIS(Internet信息服务)

点击搜索“IIS”,创建网站,选择项目发布的路径,如下图:

3.4 启动IIS,进行集成测试

浏览器输入地址localhost:8090/api/OR/Test,当然你输入本机IP、127.0.0.1也都是可以访问的,出现如下界面可返回数据就大功告成了。


四、项目异常处理

我这里分析了可能出现的报错情况,请按下方报错提示处理:

4.1 500.19-Internal Server Error

IIS 7访问的时候出现以下异常:

不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny")......

解决方案:

因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。

以管理员身份运行命令行

C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers

其中的 handlers 是错误信息中红字显示的节点名称。

如果modules也被锁定,再运行

C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

4.2 500.21-Internal Server Error

解决方案:

这是没有执行注册aspnet导致的,cmd注册C:\Windows\Microsoft.NET\Framework64\v4.0.30319\apsnet_regiis.exe -i。

如果错误依旧存在,再运行cmd,然后使用dism工具依次执行以下指令即可:

dism /online /enable-feature /featurename:IIS-ISAPIFilter

dism /online /enable-feature /featurename:IIS-ISAPIExtensions

dism /online /enable-feature /featurename:IIS-NetFxExtensibility45

dism /online /enable-feature /featurename:IIS-ASPNET45

这样,你就可以正常访问API接口了。


五、项目展示

我的WebAPI项目已经部署完成了,你们的怎么样?这里我展示一下部分,我服务端所能提供的功能,我采用Postman接口工具向你们展示了。

4.1 文件下载

复制到浏览地址栏,回车可以直接跳出下载的包。

4.2 读取二维码标签

六、系列文章

【C#】单号生成器(编号规则、固定字符、流水号、产生业务单号)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787

【C#】日期范围生成器(构建开始日期、结束日期)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129040663

【C#】数据实体类使用
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128816638

【C#】单据审批流方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128972545

【C#】二维码标签制作及打印
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126884228

【C#】最全单据打印源码(设计打印模板、条形码&二维码、标签、字体)

本文链接:https://blog.csdn.net/youcheng_ge/article/details/129415723

【C#】条码管理操作手册
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126589496

【C#】IIS平台下,WebAPI发布及异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126539836

【C#】【提高编程效率】代码模板生成工具
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126890673

【C#】【提高编程效率】Excel数据批量导入数据库
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126427323

【C#】Windows服务(Service)安装及启停方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053794

【C#】穿透Session隔离,服务调用外部程序(无窗体界面解决)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053033

【C#】任务计划实现,使用Quartz类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/123667723

【C#】《周计划管理关于产前准备模块》解决方案20200203
本文链接:https://blog.csdn.net/youcheng_ge/article/details/122919543

【C#】源码解析的正则表达式
本文链接:https://blog.csdn.net/youcheng_ge/article/details/118337074

【C#】软件版本和文件MD5记录(XML操作)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/112513871

【C#】如何测试网络是否连通
本文链接:https://blog.csdn.net/youcheng_ge/article/details/110137288

【C#】根据名称获取编码(Dictionary获取key方法)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129816701

【Inno Setup】安装包制作,项目打包方案

 本文链接:https://blog.csdn.net/youcheng_ge/article/details/123665633

发布C# WebAPI项目并在IIS部署的步骤如下: 1. 打开Visual Studio,打开你的C# WebAPI项目。 2. 在Visual Studio中,选择“生成(Build)”菜单,然后选择“发布(Publish)”选项。 3. 在“发布目标(Publish Target)”中,选择“文件系统(File System)”。 4. 在“目标位置(Target Location)”中,指定你想要发布到的文件夹。 5. 点击“发布(Publish)”按钮,Visual Studio将会发布你的C# WebAPI项目到指定的文件夹中。 6. 打开IIS管理器,右键单击“网站(Web Sites)”节点,选择“添加网站(Add Website)”选项。 7. 在“添加网站(Add Website)”对话框中,输入网站名称、物理路径、端口号等信息。 8. 在“主机名(Host Name)”中,输入你想要使用的主机名(如果不需要,请留空)。 9. 在“IP地址(IP Address)”中,选择你想要使用的IP地址(如果不需要,请留空)。 10. 点击“确定”按钮,IIS将会创建你的网站。 11. 在IIS管理器中,右键单击你刚刚创建的网站,选择“添加应用程序池(Add Application Pool)”选项。 12. 在“添加应用程序池(Add Application Pool)”对话框中,输入应用程序池名称、.NET CLR版本等信息。 13. 点击“确定”按钮,IIS将会创建你的应用程序池。 14. 在IIS管理器中,右键单击你的网站,选择“编辑绑定(Edit Bindings)”选项。 15. 在“网站绑定(Site Bindings)”对话框中,选择你想要使用的端口号、IP地址和主机名(如果有)。 16. 点击“确定”按钮,IIS将会保存你的网站绑定设置。 17. 在IIS管理器中,右键单击你的应用程序池,选择“高级设置(Advanced Settings)”选项。 18. 在“高级设置(Advanced Settings)”对话框中,将“.NET CLR版本(.NET CLR Version)”设置为你的C# WebAPI项目所使用的CLR版本。 19. 点击“确定”按钮,IIS将会保存你的应用程序池设置。 20. 在IIS管理器中,右键单击你的网站,选择“添加应用程序(Add Application)”选项。 21. 在“添加应用程序(Add Application)”对话框中,输入应用程序路径、应用程序池名称等信息。 22. 点击“确定”按钮,IIS将会创建你的应用程序。 23. 将你的C# WebAPI项目发布到应用程序路径所指定的文件夹中。 24. 打开你的浏览器,输入你的网站地址,验证你的C# WebAPI项目已经成功部署IIS中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花北城

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值