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

这篇具有很好参考价值的文章主要介绍了【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 读取二维码标签

六、系列文章


前言

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

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

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

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

一、技术介绍

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访问的端口号,创建虚拟目录。

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

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

①点击工具栏【IIS Express】c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

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

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

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

Ipconfig --all

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

解决方案:

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#


三、详细步骤

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

3.1 打包发布

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

我选择路径:

D:\WEBAPI

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

3.2 安装IIS(Internet信息服务)

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

 安装IIS功能

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

3.3 配置IIS(Internet信息服务)

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

3.4 启动IIS,进行集成测试

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#


四、项目异常处理

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

4.1 500.19-Internal Server Error

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

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

解决方案:

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

以管理员身份运行命令行

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

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

如果modules也被锁定,再运行

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

4.2 500.21-Internal Server Error

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#解决方案:

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

如果错误依旧存在,再运行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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

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


五、项目展示

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

4.1 文件下载

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

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

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

4.2 读取二维码标签

c#web api发布,C#项目,WebApi,IIS,网站搭建,Web发布,C#

六、系列文章

【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文章来源地址https://www.toymoban.com/news/detail-796066.html

到了这里,关于【C#】WebAPI,在Windows IIS平台部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [入门一]C# webApi创建、与发布、部署、api调用

    一. 创建 web api项目 1.1、项目创建 MVC架构的话,它会有view-model-control三层,在web api中它的前端和后端是分离的,所以只在项目中存在model-control两层 1.2、修改路由 打开App_Start文件夹下,WebApiConfig.cs , 修改路由,加上{action}/ ,这样就可以在api接口中通过接口函数名,来导向我

    2024年02月05日
    浏览(30)
  • 在IIS上部署你的ASP.NET Core Web Api项目及Swagger

    与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响

    2024年02月10日
    浏览(39)
  • .NET Core WebAPI项目部署iis后Swagger 404问题解决

    之前做了一个WebAPI的项目,我在文章中写到的是Docker方式部署,然后考虑到很多初学者用的是iis,下面讲解下iis如何部署WebAPI项目。 iis ASPNETCoreModuleV2 重点 .NET Core Runtime iis的配置这里就不讲了,主要讲解.NET Core项目部署之后Swagger无法访问问题。 ASPNETCoreModuleV2 安装: https:/

    2024年03月09日
    浏览(35)
  • C#桌面程序(winform)如何一步步集成内置WebApi(owin技术),解耦IIS,并将Api接收信息推给桌面窗体控件展示

    最近工厂有个需求,服务器上部署了一个服务,此服务要把信息推送给现场多台工控机上的CS上位机程序。由于涉及到多个软件之间的通信,做架构时,首先排除掉中间表形式,从效率和稳定性上也排除掉了Socket,最后采用了WebApi接口形式来做通信。但是有个问题,上位机程

    2023年04月08日
    浏览(31)
  • vue+asp.net Web api前后端分离项目发布部署

    1.前端项目是使用vue脚手架进行创建的。 脚手架版本:@vue/cli 5.0.8 编译器版本:vs code 1.82.2 2.后端是一个asp.net  Core Web API 项目 后端框架版本:.NET 6.0 编译器版本:vs 2022 第一步:在vs code 编译器中的终端窗口输入如下命令,进行前端项目打包。 打包后文件如下所示: 第二步

    2024年02月05日
    浏览(43)
  • C#进阶-IIS服务器发布ASP.NET项目

    对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以 IIS服务器 发布 ASP.NET 项目为例。 本地用 Visual Studio 打开一个可运行的

    2024年02月01日
    浏览(45)
  • 项目发布部署:如何发布.NETCore项目到IIS服务器?

    前言:本文将详细介绍如何发布.NET Core项目到IIS服务器。首先,第一步需要安装IIS,介绍了在本地电脑和服务器中进行安装。然后需要安装SDK和运行时才能发布.NETCore项目。其次介绍了如何发布.NETCore项目和Vue项目,并配置IIS。最后介绍了如何将项目部署到Service服务中。 (

    2024年02月13日
    浏览(42)
  • 【IIS建站教程】windows本地搭建web服务,内网穿透发布公网访问

    转载自远程源码文章:【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透」 在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如网页运行的Apache和Nginx、数据库软件MySQL和MSSQL之类,为方便用户使用,还出现了XAMPP、PHPStudy、宝塔面板等等一系

    2024年02月06日
    浏览(36)
  • windows IIS部署Web网页

    IIS部署网页 第一,打开iis管理服务器 然后点击打开 大致打开后会呈现这样的一种景象 然后右键网站,弹出菜单,点击添加网站 该网站名称只是显示在你的网站列表内的名称,自定义即可,例如linkingInnovations; 应用程序池选择DefaultAppPool默认选项 物理路径,在该物理路径内添加好文

    2024年02月07日
    浏览(30)
  • 课程32:.Net Core Web API部署IIS

    2024年02月04日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包