获取WebService的请求信息方法实例

 更新时间:2017年11月26日 08:49:34   作者:Jichan·Jong  
下面小编就为大家分享一篇获取WebService的请求信息方法实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

一个已经写好的项目中有多个WebService,由于之前没有记录请求信息的,有时候需要查错等需要找到当次的请求信息,所以需要加入记录请求信息的功能。

首先想到的是在每一个带有WebMethod特性的方法里调用记录请求信息的方法,这样可以记录信息,但是太多带WebMethod特性的方法了,于是想在全局中拦截并捕获,于是想到了Global.asax

public class Global : System.Web.HttpApplication
 {

  protected void Application_Start(object sender, EventArgs e)
  {

  }

  protected void Session_Start(object sender, EventArgs e)
  {

  }

  protected void Application_BeginRequest(object sender, EventArgs e)
  {
   if (Request != null)
   {
    try
    {
     if (".asmx".Equals(Request.CurrentExecutionFilePathExtension,StringComparison.OrdinalIgnoreCase) && Request.ContentLength > 0)
     {
      using (MemoryStream ms = new MemoryStream())
      {
       Request.InputStream.CopyTo(ms);
       ms.Position = 0;
       using (StreamReader reader = new StreamReader(ms))
       {
        LogHelper.Info(reader.ReadToEnd());
       }
      }
      
     }
     
    }
    catch (Exception)
    {
    }
    finally
    {
     Request.InputStream.Position = 0;
    }
   }
  }

  protected void Application_AuthenticateRequest(object sender, EventArgs e)
  {

  }

  protected void Application_Error(object sender, EventArgs e)
  {

  }

  protected void Session_End(object sender, EventArgs e)
  {

  }

  protected void Application_End(object sender, EventArgs e)
  {

  }
 }
[WebMethod]
public string HelloWorld()
{
 return "Hello World";
}
[WebMethod]
public string QueryBalance(string username,string password)
{
 if (username == "test" && password == "abcd")
 {
  return "1000000";
 }
 else
 {
  return "用户名或密码错误";
 }
}

这里使用了Log4Net将请求信息记录起来

另一种调用方式是在另一个项目中添加了WerService的引用,

public partial class WebForm1 : System.Web.UI.Page
 {
  protected void Page_Load(object sender, EventArgs e)
  {
   TestWebServiceSoapClient client = new TestWebServiceSoapClient();
   Response.Write(client.QueryBalance("test","abcd"));
  }
 }

以上这篇获取WebService的请求信息方法实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • asp.C#实现图片文件与base64string编码解码

    asp.C#实现图片文件与base64string编码解码

    前些天在opera论坛里面当了个flashblocker脚本文件,顾名思义,就是把网页中的flash给过滤了,过滤之后呢就会在原位置显示一张图片,以前用firefox时的flash过滤插件也是这样,而且显示的图片也一样,一样的难看,于是就想换换它。
    2010-03-03
  • .Net多线程编程(误用点分析)

    .Net多线程编程(误用点分析)

    本文主要介绍了.Net多线程编程中的误用点分析。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 实现ASP.NET多文件上传程序代码

    实现ASP.NET多文件上传程序代码

    ASP.NET多文件上传程序
    2008-03-03
  • ASP.NET中repeater嵌套实现代码(附源码)

    ASP.NET中repeater嵌套实现代码(附源码)

    repeater嵌套经常会在一些特殊效果显示下会用到,新手朋友们可以详细看下本文,希望对你有所帮助,代码很整洁同时附有源码
    2013-03-03
  • Asp.net MVC SignalR来做实时Web聊天实例代码

    Asp.net MVC SignalR来做实时Web聊天实例代码

    本篇文章主要介绍了Asp.net SignalR来做实时Web聊天实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • ASP.NET Core与NLog集成的完整步骤

    ASP.NET Core与NLog集成的完整步骤

    NLog是一个免费的日志记录框架,专门为.net平台下的框架提供日志功能,下面这篇文章主要给大家介绍了关于ASP.NET Core与NLog集成的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • asp.net开发微信公众平台之验证消息的真实性

    asp.net开发微信公众平台之验证消息的真实性

    这篇文章主要介绍了asp.net开发微信公众平台之验证消息的真实性的相关资料,需要的朋友可以参考下
    2015-06-06
  • 关于.Net 6 添加NLog的方法

    关于.Net 6 添加NLog的方法

    .Net项目中关于日志的组件还是很多的,包括log4net,Nlog,以及.net core 框架自带的Logging,今天就简单介绍一下Nlog,对.Net 6 添加NLog相关知识感兴趣的朋友一起看看吧
    2022-01-01
  • mvc实现图片验证码功能

    mvc实现图片验证码功能

    这篇文章主要为大家详细介绍了mvc实现图片验证码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • ASP.NET用户注册实战(第11节)

    ASP.NET用户注册实战(第11节)

    这篇文章主要介绍了ASP.NET用户注册实战,巩固前10小节所学的全部知识,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-08-08

最新评论