上一步我们创建好CoreApi

接下来在框架中加入 Swagger  并发布  到 IIS

(1)首先点击依赖项》管理Nuget包

(2)输入 Swashbuckle.aspnetCore  比如:

图中两个Swagger 插件需要我们安装   注意:我这里已经安装过显示的是 卸载

(3) 在框架中 添加Swagger 注解的帮助类   HttpHeaderOperation  下面是我完整的.CS文件

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threading.Tasks;//添加引用

usingSwashbuckle.AspNetCore.Swagger;usingSwashbuckle.AspNetCore.SwaggerGen;usingMicrosoft.AspNetCore.Authorization;namespaceWebCoreApi

{public classHttpHeaderOperation : IOperationFilter

{///

///实现接口///

///

///

public voidApply(Operation operation, OperationFilterContext context)

{if (operation.Parameters == null)

{

operation.Parameters= new List();

}var actionAttrs =context.ApiDescription.ActionAttributes();var isAuthorized = actionAttrs.Any(a => a.GetType() == typeof(AuthorizeAttribute));if (isAuthorized == false) //提供action都没有权限特性标记,检查控制器有没有

{var controllerAttrs =context.ApiDescription.ControllerAttributes();

isAuthorized= controllerAttrs.Any(a => a.GetType() == typeof(AuthorizeAttribute));

}var isAllowAnonymous = actionAttrs.Any(a => a.GetType() == typeof(AllowAnonymousAttribute));if (isAuthorized && isAllowAnonymous == false)

{

operation.Parameters.Add(newNonBodyParameter()

{

Name= "Authorization", //添加Authorization头部参数

In = "header",

Type= "string",

Required= false});

}

}

}

}

View Code

(4) 添加 Swagger 的·服务方法 在  Startup中的  ConfigureServices方法里

public voidConfigureServices(IServiceCollection services)

{

services.AddMvc();

services.AddSwaggerGen(x=>{

x.SwaggerDoc("v1", newInfo

{

Version= "v1", //版本号

Title = "Szl接口文档", //标题

Description = "RESTful API",

TermsOfService= "",//服务的条件//第一个参数Name 创建人名称/也可以是 负责人名称 第二个参数 联系邮箱

Contact = new Contact { Name = "Su", Email = "szl_0000@126.com", Url = "北京"}

});//获取设置配置信息的 的路径对象 swagger界面配置

var basePath =PlatformServices.Default.Application.ApplicationBasePath;var xmlPath = Path.Combine(basePath, "AspNetCoreApiSwagger.xml");

x.IncludeXmlComments(xmlPath);

x.OperationFilter(); //添加httpHeader参数

});

}

View Code

(5)添加 Swagger 启动项 在  Startup中的  Configure方法里

public voidConfigure(IApplicationBuilder app, IHostingEnvironment env)

{if(env.IsDevelopment())

{

app.UseDeveloperExceptionPage();

}

app.UseMvc();

app.UseSwagger();//指定站点

app.UseSwaggerUI(x =>{//做出一个限制信息 描述

x.SwaggerEndpoint("/swagger/v1/swagger.json", "TwBusManagement API V1");//显示在发出请求时发送的标题

x.ShowRequestHeaders();

});

}

View Code

(6) 在框架自动生成的 Api 控制器里Post的方法上加入 注解(其他方法也可以,我只是举例)

///

///AspNet Core Post请求///

/// User类

///

///访问参数///POST///{///"value": "0e7ad584-7788-4ab1-95a6-ca0a5b444cbb",///}///

///

/// 返回新创建项

/// 如果为空时

[HttpPost]

[ProducesResponseType(typeof(User), 201)]

[ProducesResponseType(typeof(User), 400)]public voidPost([FromBody]User value)

{

}

View Code

注解的含义如下

summary 用来描述 方法的作用

remarks 用来描述传入的参数格式/也可以把调用的值放入里面

response 定义两个返回状态

User 类

///

///用户类///

public classUser

{///

///用户ID///

public int UserID { get; set; }///

///用户名称///

public int UserName { get; set; }///

///用户年龄///

public int UserAge { get; set; }

}

View Code

(7)在框架中   添加 AspNetCoreApiSwagger.xml 文件  一定要注意的是  xml 文件必须定义一个根节点 不然会报错  ,XML的属性   改为 始终复制   (XML文件在 第四步骤中有用到)

(8)设置 项目的生成 输出路径

(9)  发布   以文件夹发布就行

(10)部署IIS 说一下注意点     改成无托管代码

(11)打开IIS服务  中的模块

(12)查看是否有  AspNetCoreModule  没有进行安装 我是在国外的网站下载的

(13)  如果在运行部署的API  发生了错误

我们在  Program  中加入  如代码所示  可以帮助我们准确定义的问题所在

public classProgram

{public static void Main(string[] args)

{

BuildWebHost(args).Run();

}public static IWebHost BuildWebHost(string[] args) =>WebHost.CreateDefaultBuilder(args)//发布程序出现错误帮助定位详细错误信息//.UseKestrel()//.UseContentRoot(Directory.GetCurrentDirectory())//.UseSetting("detailedErrors", "true")//.UseIISIntegration()

.CaptureStartupErrors(true)

.UseStartup()

.Build();

}

View Code

OK  今天就完成了,

以后会描述一下 框架的基础知识  比如  应用程序的启动、日子、路由、静态文件、WebSockteS  等,

等到基础描述过后,在框架中加入一些我闷在实战中用到的,希望大家多多指出错误不足之处,这是我的学习。

补充一下显示结果,开始的时候忘记截图了

有人在实践中遇到了没有注释的问题

在启动的时候

注意这里 XML名称是否错误

代码中读取的注释信息在 AspNetCoreApiSwagger.xml中,项目启动后会把注释信息生成到AspNetCoreApiSwagger.xml中

iis swagger 部署_AspNet Core Api Restful +Swagger 发布IIS 实现微服务之旅 (二)相关推荐

  1. IIS上部署Net.Core

    部署: 1.安装vc_redist.x64vc_redist.x64 2.安装DotNetCore.1.0.0.RC2-WindowsHosting 3.安装DotNetCore.1.0.0-SDK. ...

  2. 在IIS上部署.net core的webapi项目 以及502.5错误的两种解决方法

    在IIS上部署.net core的webapi项目 以及502.5错误的两种解决方法 参考文章: (1)在IIS上部署.net core的webapi项目 以及502.5错误的两种解决方法 (2)ht ...

  3. 微服务实践(二):使用API Gateway

    [编者的话]本系列的第一篇介绍了微服务架构模式.它讨论了采用微服务的优点和缺点,除了一些复杂的微服务,这种模式还是复杂应用的理想选择. 点击这里获取云原生干货 当你决定将应用作为一组微服务时,需要决定 ...

  4. 【go-zero】go-zero开发环境 如何聚合所有api? caddy反向代理服务分发 微服务设计api聚合方法 best practice

    帮助go-zero开发者聚合api 相关视频 一.go-zero 微服务整体架构 1.微服务的基本架构 2.go-zero 微服务的 api authrpc.api 文件 routes.go 文件 二 ...

  5. win 10+ iis 10 部署.net core 1.1 web api

    今天上午部署了wcf,部署了好久,一直没有部署好,最后找到了dudu的部署方法,结果中午吃饭的时候成功了,这是链接:http://www.cnblogs.com/dudu/p/3328066.html ...

  6. Windows IIS 环境部署 .NET Core 语言文件 SSL证书 HTTPS协议

    Azure 应用服务和 IIS 上 ASP.NET Core 的常见错误参考 .NET Core 应用程序发布概述[发布独立应用] .NET Core 应用程序发布概述[发布依赖于运行时的应用] Do ...

  7. 【.net core】电商平台升级之微服务架构应用实战

    一.前言 这篇文章本来是继续分享IdentityServer4 的相关文章,由于之前有博友问我关于微服务相关的问题,我就先跳过IdentityServer4的分享,进行微服务相关的技术学习和分享.微服 ...

  8. 需要单机还是集群部署_单机、集群和分布式(微服务结构)的区别

    一.单机 单机就是所有的业务全部写在一个项目中,部署服务到一台服务器上,所有的请求业务都由这台服务器处理.显然,当业务增长到一定程度的时候,服务器的硬件会无法满足业务需求.自然而然地想到一个程序不行就 ...

  9. iis swagger 部署_asp.net-core – 虚拟目录中的IIS站点Swagger UI端点

    Swagger UI端点与登台时的dev不同(不包括域名) IIS配置 public void Configure(IApplicationBuilder app, IHostingEnvironme ...

  10. 【Core Swagger】.NET Core中使用swagger

    一.入门 https://www.nuget.org/packages/Swashbuckle.AspNetCore.SwaggerGen/ 1.添加核心NUGET包 Swashbuckle.AspN ...

最新文章

  1. java导出为excel文件_java导出数据到excel文件
  2. Halcon_灰度直方图和特征直方图的使用
  3. Lync-用户-电话号码-更新
  4. python 数据科学 包_什么时候应该使用哪个Python数据科学软件包?
  5. python数独游戏源代码100行_python实现自动解数独小程序
  6. Zabbix如何通过ODBC对接Oracle获取相关数据
  7. vim的ex模式介绍
  8. xp桌面计算机在哪个文件夹,XP电脑的桌面背景在哪个文件夹?
  9. JS导出Excel文件的方式
  10. CEEMDAN算法及其应用
  11. svchost.exe病毒-任务栏怎么也关闭不掉的搜索框
  12. 让dede织梦显示最新文章前面加小图标
  13. 公司要收我的毕业证书,这合法吗?——网上答疑(17)
  14. trim()方法的使用
  15. 永远怀念左耳朵耗子陈皓——IT界的失去
  16. android国际化设置语言后不起作用,Android旋转屏幕后国际化语言失效的解决的方法...
  17. linux下怎样运行oyrhon,Fedora CoreOS基础操作,包括安装并运行Fedora CoreOS
  18. 电脑桌面云便签怎么设置分类宽度?
  19. 保护眼睛的电脑桌面颜色(推荐)
  20. ORA-01653: unable to extend table OGGADM.GGS_MARKER by 8192 in tablespace OGG

热门文章

  1. 唐努乌梁海问题的由来
  2. 2019.04.07 电商12 登录界面的验证
  3. jieba库初识与运用
  4. P2668 斗地主 贪心+深搜
  5. 今天下午又是在教室里坐了一个下午,头有点晕
  6. lIUNX如何加载U盘,光盘
  7. VS2008启动调试,出现“ 已经找到网站 正在等待回应”
  8. 在 Linux 系统上源码安装 GTK+ 2.0
  9. mxnet入门--第5篇
  10. 扇贝有道180923每日一句