做开发没多久,这次单位让我做对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. 数据持久化系列之Mysql

    一.命令行操作 1.显示所有库: show databases; 2.要操作某个库,比如库名: db_book:use db_book; 3.查看表的基本结构,比如表名: t_book:desc t_ ...

  2. github与github网站push神器

    GitBook.Editor(全英文,无汉化) 链接: http://pan.baidu.com/s/1slIZ5jJ 密码: q9mw source tree (汉化中文) 本地需要安装git客户端 ...

  3. zombodb 数据类型映射

    zombodb 与es 数据类型的映射处理 通用数据类型映射 Postgres 类型 Elasticsearch JSON 映射定义 bytea {"type": "bi ...

  4. jenkins 结合 jmeter 的报告篇

    背景:实现jmeter每30分钟执行一次,运行系统中所有接口或者性能脚本或者后续更可以由系统部署来触发建构执行 1.配置jmeter测试环境,注意修改Jmeter的bin目录下jmeter.prope ...

  5. webpack 中,module、chunk、bundle 的区别(待补充)

    项目 区别 module 是开发中的单个模块 chunk 中文意思是"块",是指 webpack 在进行模块依赖分析的时候,代码分割出来的代码块 bundle

  6. 2017 browser market share

    Refer to Net Market Share published data for year 2017, browser share percentage as below table show ...

  7. EasyMock 模拟对象测试

    一.EasyMock 使用动态代理实现模拟对象创建,一般可以满足以下测试需求 1.要测试的模块依赖于其它自己控制不了的模块,如第三方服务,其它组员在开发的服务等,它们都没办法配合你来测试: 2.涉及到 ...

  8. Pod配置PersistentVolumeClaim详解

    1,创建PersistentVolume kind: PersistentVolume apiVersion: v1 metadata: name: task-pv-volume labels: ty ...

  9. Python——python读取xml实战,作业6(python programming)

    cd_catalog.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Edited ...

  10. SyntaxError: 'ascii' codec can't decode byte 0xe4 in position 7: ordinal not in range(128)

    问题描述: SyntaxError: 'ascii' codec can't decode byte 0xe4 in position 7: ordinal not in range(128) 解决方 ...