0

次の 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 でまったく同じエンベロープを送信して、応答を受け取ることはできます。これは私を夢中にさせています。

4

2 に答える 2

0

ServiceNow インスタンスのアクセス制御またはその他のセキュリティによってブロックされている可能性があります。有効な XML 応答を受信して​​います。これは、適切な接続が確立されたことを意味します。ゼロ カウント応答を与える 2 つのことしか考えられません。(A) データベースには、この番号に関するインシデントは実際にはありません。(B) インシデントは存在しますが、Web サービスのユーザー アカウントがアクセス制御に失敗しているため、ServiceNow で表示できません。

于 2014-03-28T22:20:13.500 に答える