做开发没多久,这次单位让我做对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. 解决插值表达式闪烁问题 - v-cloak

    v-cloak页面在js没有加载出来的时候,不显示该部分 linux可以通过响应式设计模式,来模拟2,3G网络 <!DOCTYPE html><html><head> ...

  2. Shell脚本、Shell脚本结构、date命令的用法、变量

    1.Shell脚本: shell是一种脚本语言 目的:可以实现自动化运维,能大大增加运维的效率.2.Shell脚本结构:   #!/bin/bash  以#!/bin/bash开头,即以/bin/ba ...

  3. Arch Linux pacman 与其他发行版操作比较

    原文:https://wiki.archlinux.org/index.php/Pacman/Rosettahttps://old-en.opensuse.org/Software_Managemen ...

  4. I think I need a boat house

    I think I need a boat house. Fred Mapper is considering purchasing some land in Louisiana to build h ...

  5. java_oop_方法2

    基本和引用数据类型    存储方式    数据类型总结 jvm运行时数据区域        方法区        虚拟机栈!        本地方法栈        堆!        程序计数器 虚 ...

  6. [ZZ] 麻省理工( MIT)大神解说数学体系

    麻省理工( MIT)大神解说数学体系 http://blog.sina.com.cn/s/blog_5ff4fb7b0102e3p6.html 其实每一门学科都应该在学习完成后,在脑子里面有一个体系, ...

  7. 使用JAVA实现的一个简单IOC注入实例

    https://blog.csdn.net/echoshinian100/article/details/77977823 欲登高而望远,勿筑台于流沙 RSS订阅 原 使用JAVA实现的一个简单IOC ...

  8. BCC校验小知识

    BCC校验其实是奇偶校验的一种,但也是经常使用并且效率较高的一种.所谓BCC校验法,就是在发送前和发送后分别把BCC以前包括ETX字符的所有字符按位异或后,按要求变换(增加或去除一个固定的值)后所得到 ...

  9. <Vector Calculus>(by Paul C, Matthews) Notes

    现在流行用Exterior Caculus, 所以个人觉得Matthews这本书有点过时了. 想学Vector Calculus的话,推荐<Vector Calculus, Linear Alg ...

  10. 学习笔记之Linux / Shell / QSHELL

    shell(计算机壳层)_百度百科 http://baike.baidu.com/subview/849/15831672.htm Shell (computing) - Wikipedia, the ...