细说IIS异常日志 — 你必须知道的功能
最近在跟QAD用Webservice搞接口做数据维护,搞的哥那个叫头大,遇到很多问题,系统的log4net根本就无法记录。话说QAD调我某一个接口,可能包含几百个字段,而且QAD是个产品,所以我这边提供的维护接口,必须符合QAD的接口标准,两个字蛋疼,四个字就是相当蛋疼。
没办法谁让咱是搞程序的呢,再苦再累也得上。这时候我突然相倒了,webservice是基于IIS的,那么基于IIS必须有IIS日志,那么我就从IIS日志入手解决这些问题。
问题示例:QAD调用我方接口,返回消息“<QdocProcessingException>HTTP/1.1 500 Internal Server Error</QdocProcessingException>”,该接口传入参数为对象,对像中包含加密口令,Maintain对象,其中Maintain对象中包含上百个字段,接口方法中有详细的日志日录,方法返回的是一个已定义对象。在QAD调用我方接口的过程中,并未产生相关日志记录。
分析:首先从返回消息格式上看,该返回消息并非是预定义的返回对象,从返回消息内容上看,该消息属于明显的500错误,也就说肯定是我方接口存在一些问题,但是具体是哪里出问题,现在不清楚。其次从问题中可以清晰的了解QAD并未调用到接口中方法,否则方法中的日志记录可以捕获到异常信息,从其他情况来看,QAD已经调用到我方接口,但是在调用进入方法之前出了一点小差错,预计可能是传入对象出错了,但是对象包含上百个字段,如何排查是哪个出错了,即便这次排查成功,那么下次呢。想到此我的汗毛都竖起来了,不过没关系,谁让咱是程序员呢。
解决方法:不是有IIS日志的吗,注意:iis日志只会记录这次请求是500错误,但是具体错误内容还得配置一番,请看详解。
在IIS配置里面有个Failed Request Tarcing Rules,我们New一个Rules。
我们来新建一个500错误,OK,这次我们再用QAD来调用一次我们的接口。
这次我们发现在C:\inetpub\logs\LogFiles\W3SVC2下面的u_ex120305.txt里面发现了一条500错误,我们再去看C:\inetpub\logs\FailedReqLogFiles\W3SVC2下面有什么变化,这时候这个路径下面多了一些fr0000开头的XML文件,那么我们来打开这个最新的文件,来分析一下。
见红色标注的地方就是问题所在,原来是一个字段的类型定义错了,导致QAD那边调用接口在序列化的时候报错了,问题解决。
出处:http://www.cnblogs.com/yangtongnet/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库