美文网首页
第四十六章 解决 IRIS 中的 SOAP 问题

第四十六章 解决 IRIS 中的 SOAP 问题

作者: Cache技术分享 | 来源:发表于2024-07-02 08:08 被阅读0次

    第四十六章 解决 IRIS 中的 SOAP 问题

    本主题提供信息来帮助识别 IRIS 数据平台中 SOAP 问题的原因。

    有关明显与安全相关的问题的信息,请参阅故障排除安全问题。在极少数情况下, SOAP 客户端会使用 HTTP 身份验证,请注意,可以启用身份验证的日志记录;请参阅发送 HTTP 请求中的提供登录凭据。

    故障排除所需的信息

    要确定 SOAP 问题的原因,通常需要以下信息:

    • WSDL 及其引用的所有外部文档。
    • (在出现与消息相关的问题的情况下)某种形式的消息记录或跟踪。有以下选择:
    Option Usable with SSL/TLS? Shows HTTP headers? Comments
    InterSystems IRIS SOAP log Yes Optionally 对于安全错误,此日志显示的详细信息比 SOAP 故障中包含的更多。
    Web Gateway trace Yes Yes 对于使用 MTOM(MIME 附件)的 SOAP 消息问题,查看 HTTP 标头至关重要。
    Third-party tracing tools No Depends on the tool 一些跟踪工具还显示较低级别的详细信息,例如实际发送的数据包,这在进行故障排除时至关重要。

    以下小节将讨论这些选项。

    正确处理故障也非常有用,这样就可以收到最好的信息。请参阅 SOAP 故障处理。

    IRIS SOAP 日志

    要记录对 IRIS 命名空间发出的 SOAP 调用,请按照此处所述启用 SOAP 日志记录。

    重要提示:SOAP 日志非常庞大,因此应仅在需要时启用它并尽快禁用它。有关详细信息,请参阅下面的说明。

     set ^ISCSOAP("LogFile")=filename
     set ^ISCSOAP("Log")=optionstring
    
    • optionstring 指定要包含在日志中的数据类型。使用以下区分大小写值的组合:
      • i — 记录传入消息。
      • o — 记录传出消息。
      • s — 记录安全信息。请注意,此选项提供的详细信息比 SOAP 故障中通常包含的信息更详细,SOAP 故障故意含糊其辞,以防止后续的安全攻击。
      • h — 仅记录 SOAP 标头。必须将 hi/o 组合使用。将 hi 结合使用时,日志仅包含入站消息的 SOAP EnvelopeHeader 元素。同样,将 ho 结合使用时,日志仅包含出站消息的 SOAP EnvelopeHeader 元素。不会记录相应的 SOAP Body 元素。
      • H — 记录 HTTP 标头。必须将 Hi/o 组合使用。将 Hi 组合使用时,日志将包含入站消息的 HTTP 标头。同样,将 Ho 组合使用时,日志将包含出站消息的HTTP标头。除了记录任何SOAP数据外,还会记录HTTP 标头。

    可以使用包含这些值的任意组合的字符串,例如:“iosh

    • filename 是要创建的日志文件的完整路径和文件名。

    日志会根据需要指示发送者或接收者,以便可以看到哪个 Web 服务或客户端参与了交换。

    下面显示了日志文件的部分示例,其中添加了换行符以方便阅读:

    
    01/05/2022 13:27:02 *********************
    Output from web client with SOAP action = https://www.mysecureapp.org/GSOAP.AddComplexSecureWS.Add
    <?xml version="1.0" encoding="UTF-8" ?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV='https://schemas.xmlsoap.org/soap/envelope/' 
    ...
      <SOAP-ENV:Header>
          <Security xmlns="https://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
       
      </SOAP-ENV:Header>
      <SOAP-ENV:Body>
    ...
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    
    
    **** Output HTTP headers for Web Client
    User-Agent: Mozilla/4.0 (compatible; InterSystems IRIS;)
    Host: hostid
    Accept-Encoding: gzip
    
    
    **** Input HTTP headers for Web Client
    HTTP/1.1 200 OK
    CACHE-CONTROL: no-cache
    CONTENT-ENCODING: gzip
    CONTENT-LENGTH: 479
    CONTENT-TYPE: application/soap+xml; charset=UTF-8
    ...
    
    
    01/05/2022 13:27:33 *********************
    Input to web client with SOAP action = https://www.mysecureapp.org/GSOAP.AddComplexSecureWS.Add
    
    ERROR #6059: Unable to open TCP/IP socket to server devsys:8080
    string
    

    请注意以下几点:

    • 使用 XML 工具,可以验证已签名的 XML 文档的签名并解密加密的 XML 文档。如果在此命名空间中执行这些任务,则日志也会包含这些任务的详细信息。请参使用 XML 工具。
    • 即使没有在线发送任何消息(即,当服务和客户端都在一台机器上时), IRIS SOAP 日志也会捕获 SOAP 调用。
    • 如果发生严重错误,系统将停止写入 SOAP 日志。请参阅消息日志。有关信息,请参阅监控日志文件。
    • 任务管理器 CheckLogging 任务每晚运行一次,如果 SOAP 日志记录保留时间过长(默认情况下为 2 天),则会发出警报。由于 SOAP 日志量很大,因此注意此警报非常重要。

    相关文章

      网友评论

          本文标题:第四十六章 解决 IRIS 中的 SOAP 问题

          本文链接:https://www.haomeiwen.com/subject/whjvcjtx.html