gpt4 book ai didi

asp.net - 捕获对ASP.NET ASMX Web服务的SOAP请求

转载 作者:行者123 更新时间:2023-12-03 09:07:22 24 4
gpt4 key购买 nike

考虑将传入的SOAP请求记录到ASP.NET ASMX Web服务的要求。任务是捕获发送到Web服务的原始XML。

需要记录传入消息以进行调试检查。该应用程序已经在使用自己的日志记录库,因此理想的用法是这样的:

//string or XML, it doesn't matter.
string incomingSoapRequest = GetSoapRequest();

Logger.LogMessage(incomingSoapRequest);
  • 有没有简单的解决方案来捕获传入的SOAP请求的原始XML?
  • 您将处理哪些事件来访问该对象和相关属性?
  • 是否IIS可以捕获传入的请求并将其推送到日志?
  • 最佳答案

    捕获原始消息的一种方法是使用SoapExtensions

    SoapExtensions的替代方法是实现IHttpModule并在输入流进入时抓取。

    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();
    }
    }

    关于asp.net - 捕获对ASP.NET ASMX Web服务的SOAP请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2624621/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com