虚位以待(AD)
虚位以待(AD)
首页 > 网络编程 > ASP.NET > 获取WebService的请求信息方法实例

获取WebService的请求信息方法实例
类别:ASP.NET   作者:码皇   来源:互联网   点击:

下面小编就为大家分享一篇获取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的请求信息方法实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关热词搜索: 获取WebService的请求