使用来自以下网站的小型衍生产品:
http://servicenowsoap.wordpress.com/2013/10/26/vb-script/
...我在 VB.Net 而不是 VBScript 中实现调用。我正在使用 Microsoft XML 3.0 资源,并且在初始测试期间......它可以正常工作。我可以发送一个“getKeys”更新传递一个数字,它会返回 ServiceNow 所需的 sys_id 数字。
现在,当我发送任何 SOAP/XML 信封时,服务器会假装我发送了一些外来的东西。它返回 0 作为计数并且没有 sys_id。我尝试使用直接 XML 实现,并通过 Web 服务加载 WSDL。两者都返回相同的结果:什么都没有。
但是,当我在任何其他机器上尝试此代码时,它将使用完全相同的代码发送和接收 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 中发送完全相同的信封,并得到响应。这真让我抓狂。