【发布时间】:2017-03-08 08:26:41
【问题描述】:
我有一个 Delphi 应用程序访问 Internet 上的 Web 服务。 上述服务的提供者现在已更改为基于云的基础架构,并向我提出以下要求:
"请在file $JAVA_HOME/jre/lib/security/java.security中配置networkaddress.cache.ttl如下:networkaddress.cache.ttl=60"
根据网络服务提供商的说法,这对于服务在任何情况下都能提供正确的结果是必要的。 他检查了我的应用程序的连接,在他看来,一旦启动它就会使用相同的 IP 地址。 重新启动应用程序确实解决了这个问题。
我一直在使用 IDE 提供的向导导入 WSDL,因此我使用 THTTPRIO 的实例来访问 Web 服务。 THTTPRIO 实例在主窗体的 FormCreate() 中创建。 该应用程序 24/7 全天候运行,并定期访问 Web 服务的多种方法。
Delphi SOAP 框架是否使用 DNS 缓存?
如果有,Java 中是否有类似networkaddress.cache.ttl 的属性?
是否有解决此问题的好方法(例如,在每次调用服务之前重新实例化包装类,而不是在 FormCreate 中只重新实例化一次)?
编辑: 该应用程序使用 Delphi 10.1 编译。柏林(最初使用 Delphi XE7 开发)。它在 Windows 7 机器上运行。
【问题讨论】:
-
您是否在使用某种 delphi 框架?它是哪个操作系统?
-
我正在使用 Delphi 附带的 SOAP 框架(Delphi 10.1 Berlin Enterprise ATM)。它在 Windows 7 上运行。
-
哪个平台? (答案可能取决于操作系统)
-
这是 Windows 7(刚刚添加到问题中)。
标签: web-services delphi caching soap dns