且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

捕捉SOAP请求到ASP.NET ASMX web服务

更新时间:2022-05-22 23:45:17

一捕捉到的原始信息的方法是使用的 SoapExtensions

One way to capture the raw message is to use SoapExtensions.

要SoapExtensions的替代方法是实施IHttpModule的抢,因为它在未来的输入流。

An alternative to SoapExtensions is to implement IHttpModule and grab the input stream as it's coming in.

public class LogModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.BeginRequest += this.OnBegin;
    }

    private void OnBegin(object sender, EventArgs e)
    {
        HttpApplication app = (HttpApplication)sender;
        HttpContext context = app.Context;

        byte[] buffer = new byte[context.Request.InputStream.Length];
        context.Request.InputStream.Read(buffer, 0, buffer.Length);
        context.Request.InputStream.Position = 0;

        string soapMessage = Encoding.ASCII.GetString(buffer);

        // Do something with soapMessage
    }

    public void Dispose()
    {
        throw new NotImplementedException();
    }
}