文章目錄
- 第四十六章 解決 IRIS 中的 SOAP 問題
- 故障排除所需的信息
- IRIS SOAP 日志
第四十六章 解決 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")=filenameset ^ISCSOAP("Log")=optionstring
optionstring
指定要包含在日志中的數據類型。使用以下區分大小寫值的組合:i
— 記錄傳入消息。o
— 記錄傳出消息。s
— 記錄安全信息。請注意,此選項提供的詳細信息比SOAP
故障中通常包含的信息更詳細,SOAP
故障故意含糊其辭,以防止后續的安全攻擊。h
— 僅記錄SOAP
標頭。必須將h
與i
和/
或o
組合使用。將h
與i
結合使用時,日志僅包含入站消息的SOAP
Envelope
和Header
元素。同樣,將h
與o
結合使用時,日志僅包含出站消息的SOAP Envelope
和Header
元素。不會記錄相應的SOAP Body
元素。H
— 記錄HTTP
標頭。必須將H
與i
和/
或o
組合使用。將H
與i
組合使用時,日志將包含入站消息的HTTP
標頭。同樣,將H
與o
組合使用時,日志將包含出站消息的
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.AddERROR #6059: Unable to open TCP/IP socket to server devsys:8080
string
請注意以下幾點:
- 使用
XML
工具,可以驗證已簽名的XML
文檔的簽名并解密加密的XML
文檔。如果在此命名空間中執行這些任務,則日志也會包含這些任務的詳細信息。請參使用XML
工具。 - 即使沒有在線發送任何消息(即,當服務和客戶端都在一臺機器上時),
IRIS SOAP
日志也會捕獲SOAP
調用。 - 如果發生嚴重錯誤,系統將停止寫入
SOAP
日志。請參閱消息日志。有關信息,請參閱監控日志文件。 - 任務管理器
CheckLogging
任務每晚運行一次,如果SOAP
日志記錄保留時間過長(默認情況下為2
天),則會發出警報。由于SOAP
日志量很大,因此注意此警報非常重要。