做开发没多久,这次单位让我做对TB 的机票运价直连接口,其实主要是去sabre gds带上相应的参数去做查询,验仓,下单操作,这次用到asp.net boilerplate 项目模板搭建,用它的动态webapi (ApplicationService)开发对TB的rest 接口 ,起初在此项目之前对此gds已经完成了通用访问的方法实现,并封装成了webservice 已被其他程序调用,实现的方法是用Microsoft Visual Studio Tools  XSD.exe 对请求和返回的xml进行转换

>xsd.exe backdata.xml

>xsd.exe /c backdata.xsd

结果就是如果幸运,转换成功,把生成的.cs文件丢到项目里,每次请求和响应都对此类做转换,可是....我并不总是幸运的,而且xsd工具生成的总是数组,而且任何元素节点都是数组,操作起来实在是麻烦,之间在xml2class的时候也会出现这个问题,大致是 '无法将类型**[][]转成**[]' ,后来google了好久,找到方法解决 ----- 把所有的[][] 改成[] ,完成转换。

后来在网上找到了一个工具xsd2code++  可以将xsd文件生成类,而且可以把那该死的[]生成 List<> ,IList<> 等等 ,至于其他的功能还在探索,但是比较不爽的是它需要license key ,可以适用一段时间,过后就出现下边这样....

因此我换了好多邮箱去申请license key ....

  虽然 xml2class 的问题可以得到一些解决,但是并不是所有的xml都可以去完成反序列化的操作,没办法  ...简单(很不简单)而又粗暴(一点也不粗暴)的方式通过 xml 字符串去拼凑请求,返回的xml如果不能处理,就要适用linq2xml 了,用这种东拼西凑的方式完成的这个项目,其实总结起来因为自己掌握的技术不全面(后来才发现他们提供的是soap api,wsdl 可以解决一切)。

  那么 这个 运价直连接口 需要调用之前的 大坑 ,好吧 .....引用webservice 到abp项目 ,写好文档上的参数对应的DTO 和相应的验证,操作着由公共方法还回的 '大对象‘ ,实在是...做完之后,要求我把查询的响应的时间记录下来,这会问题来了,如何记录呢?先用着不知是否可行的办法,将时间的记录值放到application 里面,开始和结束计算时间差...。

  其实做了一段时间开发之后才会发现,遇到问题基本的解决办法是学会如何google,后来在stackoverflow上找到了该问题,而且大神 也详细的说明了"asp.net webapi 接口执行时间监控" 里边用的方法都是StopWatch

通过MSDN了解过他的基本用法  :Provides a set of methods and properties that you can use to accurately measure elapsed time.

属性:

方法:

   

step_by_step_webapi执行时间的更多相关文章

  1. EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因(系列4)

    前言 Entity Framework 延伸系列目录 今天我们来聊聊EF的日志记录. 一个好的数据库操作记录不仅仅可以帮你记录用户的操作, 更应该可以帮助你获得效率低下的语句来帮你提高运行效率 废话不 ...

  2. 使用T-SQL找出执行时间过长的作业

        有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下:   SELECT sj.name , ...

  3. Spring AOP实例——异常处理和记录程序执行时间

    实例简介: 这个实例主要用于在一个系统的所有方法执行过程中出线异常时,把异常信息都记录下来,另外记录每个方法的执行时间. 用两个业务逻辑来说明上述功能,这两个业务逻辑首先使用Spring AOP的自动 ...

  4. ASP.NET Web API 接口执行时间监控

    软件产品常常会出现这样的情况:产品性能因某些无法预料的瓶颈而受到干扰,导致程序的处理效率降低,性能得不到充分的发挥.如何快速有效地找到软件产品的性能瓶颈,则是我们感兴趣的内容之一. 在本文中,我将解释 ...

  5. PHP通过ini_set()来设置显示错误信息和执行时间

    PHP的 ini_set函数是设置选项中的值,在执行函数后生效,脚本结束的时候,这个设置也失效.不是所有的选项都能被改函数设置的.具体那些值能够设置,可以查看手册中的列表. 就是能够设置php.ini ...

  6. crontab执行时间和系统时间不一致

    最近发现一个非常奇怪的问题,症状如下: crontab 定时任务 配置时间 是 10 5 * * * (每日凌晨5点10分执行) 运行脚本时间却是 18:10左右 Dec 24 05:10:01 ht ...

  7. DebugLog 打印方法执行时间

    DebugLog 打印方法执行时间 用于方便调试性能问题的打印插件.给访法加上@DebugLog,就能输出该方法的调用参数,以及执行时间. Project gradle配置 // Top-level ...

  8. php: 不能嵌套try-catch-fnally,否则执行时间过长

    php不能try-catch-fnally里面在嵌套try-catch-fnall,否则本来执行时间不长的程序,会被执行更长时间,这是php的bug吗? 如: try{ 代码块 }catch (\Ex ...

  9. Oracle执行时间与sql格式

    今天碰到一个很奇怪的问题,直接在eclipse中将sql拷出,然后直接粘贴复制在数据库中就会执行的非常慢,但是在利用plsql对sql语句进行格式整理之后,执行的速度就非常的快,之后我where条件中 ...

随机推荐

  1. js初识1

    JavaScript 1.定义:可以嵌入HTML文档,载体是浏览器,解释型脚本语言 基于对象和事件驱动 2.注释方式 1.// 2./**/ 3./** */文档注释,API就是这么生成的. 3.引入 ...

  2. java.lang.ClassNotFoundException: org.apache.http.conn.UnsupportedSchemeException

    加入了阿里云的消息服务后,就一直之前报java.lang.ClassNotFoundException: org.apache.http.conn.UnsupportedSchemeException ...

  3. 小妖精的完美游戏教室——东方project,同人,自机

    //================================================================ //// Copyright (C)// All Rights R ...

  4. Unreal Engine 4 C++ UCLASS构造函数易出错分析

    Unreal Engine 4 C UCLASS构造函数易出错分析 GENERATED_BODY GENERATED_UCLASS_BODY 在Unreal Engine 4的任意类中通常会见到两个宏 ...

  5. linux数据库

    sudo apt-get install mysql-server ---------Centos7下安装mysql 开始-------------下载mysql的repo源# yum install ...

  6. 全志A33开发板Linux内核定时器编程

    开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 QQ:641395230 Linux 内核定时器是内核 ...

  7. 监控端口是否开放,端口未开放关闭虚拟ip,端口开放启动虚拟IP

    #!/bin/bash#该脚本监控本机的一个端口,当端口异常时,停止lvs的本地ip直到恢复.该脚本依托于lvs.sh启动脚本#目前只支持监控1个vip #定义常用变量#配置检查的ip以及端口chec ...

  8. CSS 社区的解决方案,对比

    在众多解决方案中,没有绝对的优劣.还是要结合自己的场景来决定. 我们团队在使用过 scss 和 css modules 后,仍然又重新选择了使用 scss.css modules 虽然有效解决了样式冲 ...

  9. 数据恢复工具--extundelete的安装与使用

    1.extundelete的恢复原理 extundelete恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息,来获得当前文件系统下所有文件的信息,包括存在的和已 ...

  10. springboot 的war包在Tomcat中启动失败

    springboot 默认是通常是打包成jar的,里面会内置一个tomcat容器 有时候我们需要使用以前打成war包的方式部署到对应的tomcat中, 具体springboot 怎么从jar改成war ...