次の Web サイトからの小さな派生物を使用します。
http://servicenowsoap.wordpress.com/2013/10/26/vb-script/
...ここでは、VBScript ではなく VB.Net で呼び出しを実装しています。私は Microsoft XML 3.0 リソースを使用していますが、最初のテストでは問題なく動作します。番号を渡す「getKeys」アップデートを送信すると、ServiceNow に必要な sys_id 番号が返されます。
ここで、SOAP/XML エンベロープを送信すると、サーバーは、私が別のものを送信したかのように見せかけます。カウントには 0 が返され、sys_id は返されません。XML の直接実装を使用して、Web サービスを介して WSDL をロードしようとしました。どちらも同じものを返します: Nothing.
しかし、このコードを他のマシンで試してみると、まったく同じコードを使用して SOAP リクエストを送受信し、期待どおりにリクエストを受信します。
両方のマシンでの SOAP エンベロープ リクエストの例:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getKeys xmlns:tns="http://www.service-now.com/sc_req_item">
<number> examplerequestnumber </number>
</getKeys>
</soap:Body>
</soap:Envelope>
他の人のマシンで返されるもの:
<?xml version="1.0" ?>
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <SOAP-ENV:Body>
- <getKeysResponse>
<sys_id>examplesysidnumber</sys_id>
<count>1</count>
</getKeysResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
私のマシンでのみ返されるもの:
<?xml version="1.0" ?>
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <SOAP-ENV:Body>
- <getKeysResponse>
</sys_id>
<count>0</count>
</getKeysResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
リクエストの完了をブロックしている可能性のあるものがマシンにあるのでしょうか? ウイルス対策もファイアウォールも稼働していません。ただし、SOAPUI でまったく同じエンベロープを送信して、応答を受け取ることはできます。これは私を夢中にさせています。