码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C#WebAPI项目发布和IIS部署


    目录

    前言

    一、问题描述

    二、发布准备

    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 读取二维码标签

    六、系列文章


    前言

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

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

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

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

    一、问题描述

    IIS平台下,WebAPI发布及异常处理。互联网信息服务(英语:Internet Information Services,简称IIS),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。

    Apache是其在网络服务软件中的主要竞争者。

    二、发布准备

    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信息服务)

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

     安装IIS功能

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

    3.3 部署IIS(Internet信息服务)

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

    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工具依次执行以下指令即可:

    1. dism /online /enable-feature /featurename:IIS-ISAPIFilter
    2. dism /online /enable-feature /featurename:IIS-ISAPIExtensions
    3. dism /online /enable-feature /featurename:IIS-NetFxExtensibility45
    4. 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

  • 相关阅读:
    vue和react项目中实现 px 转 vm
    Docker安装xxl-job并整合到SpringBoot项目
    学生DW静态网页设计——html+css+javascript+jquery+bootstarp马尔代夫旅游响应式网站
    PerfView专题 (第十三篇):洞察 .NET程序 的非托管句柄泄露
    [ESP32][esp-idf] AP+STA实现无线桥接(中转wifi信号)
    ElasticSearch三种分页对比
    k8s学习-污点和容忍(概念、模版、创建、删除)
    GRACE-FO L2产品的发布说明 - 版本UTCSR RL-06.1产品
    ASP.NET Core - .NET 6 的入口文件
    upload-labs靶场第17关设计PHP函数解析
  • 原文地址:https://blog.csdn.net/youcheng_ge/article/details/126539836
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号