一个已经写好的项目中有多个WebService,由于之前没有记录请求信息的,有时候需要查错等需要找到当次的请求信息,所以需要加入记录请求信息的功能。
首先想到的是在每一个带有WebMethod特性的方法里调用记录请求信息的方法,这样可以记录信息,但是太多带WebMethod特性的方法了,于是想在全局中拦截并捕获,于是想到了Global.asax
公开课全球:系统网络。http应用程序{受保护的void Application _ Start(对象发送方,EventArgs e)} {受保护的void Session _ Start(对象发送方,EventArgs e)} {受保护的void Application _ BeginRequest(对象发送方,事件参数e) { if (Request!=null) { try { if(' .asmx .等于(请求currentsectionfilepath扩展,StringComparison .请求content length 0){ 0使用(内存流ms=新内存流()){ 0请求输入流。复制到(毫秒);毫秒位置=0;使用(流阅读器=新的流阅读器(毫秒)){ LogHelper .信息(读者. ReadToEnd());} } } }捕获(异常){ }最后{请求.输入流。位置=0;} } }受保护的void Application _ AuthenticateRequest(对象发送方,EventArgs e) { }受保护的作废申请_错误(对象发送方,EventArgs e) { }受保护的作废会话_结束(对象发送方,EventArgs e){ }[WebMethod]公共字符串Hello World(){返回‘Hello World’;}[WebMethod]公共字符串查询平衡(字符串用户名,字符串密码){ if(用户名==' test ' password==' ABCD '){ return ' 1000000 ';} else { return '用户名或密码错误;}}这里使用了Log4Net将请求信息记录起来
另一种调用方式是在另一个项目中添加了WerService的引用,
公共部分类网络表单1 :系统.网络。ui。页面{受保护的无效页面_加载(对象发送方,事件参数e){ testwebservicesoap客户端客户端=new testwebservicesoap客户端();回应。写(客户端QueryBalance('test ',' ABCD ');} }
以上这篇获取WebService的请求信息方法实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。