zoukankan      html  css  js  c++  java
  • asp.net web api 的版本升级到 2.2的记录

    asp.net web api 的版本 升级到 2.2的记录

    asp.net web api 2.2相比1.0提升了不少 而且其中最重要的就是有了在线文档的自动字段注释的功能 再也不用写详细的字段说明文档

    本次跟新使用的是nuget来更新包引用的,不得不说有了nuget让项目应用的包管理变得非常方便了

    1. 首先请确认你项目.net版本最低是4.5的

    2. 更新 api

    打开nuget管理

    搜索 web api 找到

    直接点更新 一些依赖的package也会自动更新

    但是现在生成失败 因为现在help page还是低版本的

    3.更新api help

    和第二步一样 搜索 api help 找到 Microsoft.AspNet.WebApi.HelpPage 点击更新

    如果 之前版本引用的entity framework是版本较低的 现在项目中又有一大堆错误提示
    那现在更新entity framework吧 方法同第二部

    4. 修改视图web.config

    进行过上面的步骤之后 运行项目 会出现下面的错误

    [A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 [B]System.Web.WebPages.Razor.Configuration.HostSection。类型 A 源自“System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:WindowsMicrosoft.NetassemblyGAC_MSILSystem.Web.WebPages.Razorv4.0_2.0.0.0__31bf3856ad364e35System.Web.WebPages.Razor.dll”位置处)。类型 B 源自“System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Filesvs5182bf1d853b7759assemblydl3106463e0f8d66dcf_8026d101System.Web.WebPages.Razor.dll”位置处)。
    


    因为 原来引用的是 System.Web.WebPages.Razor, Version=2.0.0.0
    但是做了之前的记录更新之后 System.Web.WebPages.Razor 已经被更新到 3.0版本了

    所以现在需要修改 Views文件夹下的Web.Config中的System.Web.WebPages.Razor, Version=2.0.0.0 改成 System.Web.WebPages.Razor, Version=3.0.0.0

    5 更新 Microsoft.AspNet.WebApi.OData

    6 Web APi Help工具 检查注释文档的位置

    在站点的属性中的 生成选项里 选择XML文档文件 并且制定一个容易辨别的路径比如App_DataXmlDocument.xml
    这样的网站在生成的时候就可以把项目中的注释信息写到App_DataXmlDocument.xml中,
    在 帮助文档的配置静态类中 HelpPageConfigRegister方法中 加上这样代码

    //// Uncomment the following to use the documentation from XML documentation file.
    config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));
    

    这样 web api help就可以解析到注释信息并且 如下图所示

    这里只是以升级api帮助文档为目的升级了 asp.net web api版本 但是实际上高版本提升了很多特性 可以大大增加开发的效率,还请大家一起研究学习。

  • 相关阅读:
    SpringBoot2.x前后端分离跨域问题及Swagger不能访问
    SpirngBoot2.x整合Swagger2接口文档
    SpringBoot2.x整合Druid数据源
    SpringBoot2.x整合logback 实现自动打印日志
    docker 进入 mysql中的操作
    Intellij Springboot (子模块)访问jsp页面404
    运行rabbitmq 的docker
    mybatis拦截器修改sql重新set后不生效?
    oracle+mybatis如何在新增时返回主键(自增序列)的值?
    oracle+mybatis报“未找到要求的from关键字”错误?
  • 原文地址:https://www.cnblogs.com/yahue/p/webapiupgradeto22.html
Copyright © 2011-2022 走看看