C# WebAPI项目发布和IIS部署

发布于:2023-01-04 ⋅ 阅读:(4025) ⋅ 点赞:(4)

目录

一、WebAPI项目发布准备

1.1 Visual Studio本地项目配置

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

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

二、WebAPI项目发布

2.1 项目打包发布

2.2 安装IIS(Internet信息服务)

2.3 部署IIS(Internet信息服务)

2.4 启动IIS,进行集成测试

三、WebAPI项目问题处理

3.1 500.19-Internal Server Error

3.2 500.21-Internal Server Error

四、WebAPI项目成果展示

4.1 文件下载

4.2 读取二维码标签​​​​​​​


一、WebAPI项目发布准备

在进行项目发布前,我们要首先要确保没有bug,至少可以运行吧。

1.1 Visual Studio本地项目配置

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

步奏:右键选中项目-->【属性】-->【Web】,设置Web访问的端口号(没有啥具体要求,端口号不冲突即可,数值尽可能大,因为低位的端口号被计算机基础服务所使用),创建虚拟目录。

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

①点击工具栏【IIS Express】

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

1.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。


二、WebAPI项目发布

以上步骤我们已经完成了项目的本地测试,证明项目运行是没有问题的,我们开始做发布文件。

2.1 项目打包发布

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

我选择路径:

D:\WEBAPI

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

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

2.2 安装IIS(Internet信息服务)

web服务是项目载体,将项目部署到IIS,当然你也可以选择Tomcat,这里演示IIS。

 安装IIS功能

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

2.3 部署IIS(Internet信息服务)

创建网站,选择项目发布的路径,如下图:

2.4 启动IIS,进行集成测试

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


三、WebAPI项目问题处理

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

3.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

3.2 500.21-Internal Server Error

解决方案:

这是没有执行注册aspnet导致的,cmd注册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项目成果展示

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

4.1 文件下载

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

4.2 读取二维码标签

 

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到