【问题标题】:How to call SOAP web service from InTouch Wonderware or SQL Server 2014如何从 InTouch Wonderware 或 SQL Server 2014 调用 SOAP Web 服务
【发布时间】:2018-08-15 13:02:40
【问题描述】:

我一直在尝试从 InTouch Wonderware 或 MS SQL 2014 调用现有的 SOAP Web 服务。两者中的哪一个调用它并不重要,因为 Wonderware 项目读取/写入 SQL Server 数据库无论如何。

我的知识主要限于 Wonderware 及其访问 SQL Server 数据库的程序内选项,这与 Web 服务主题的常规指南不兼容。

Web 服务由客户提供,已有 10 多年的历史并已外包,因此排除了对其进行任何更改的可能性。目标是通过 ID 从 Web 服务请求原材料数据,然后返回生成的材料数据。每个函数的参数都有文档记录,但唯一存在的 URL 需要用户名/密码并直接显示 WSDL 文件的内容。该文件(在本地保存时)在 SoapUI 上运行,并且测试用例提供所需的结果。

我的问题是第一步 - 连接到网络服务并发送/接收消息。 WebSVC(InTouch Web 服务客户端)无法处理基本身份验证,即使在链接中包含用户名和密码时也无法连接(在任何浏览器中都可以使用)。该主题的指南通常已经过时,或者与手头的问题不匹配。

由于我对数据库和 Web 编程的知识有限,我该如何使用 Web 服务(最好以简单的方式)?性能无关紧要 - 数据库平均每分钟处理不到 10 个请求,延迟不会破坏任何重要的东西。

【问题讨论】:

  • 到目前为止你尝试过什么代码?
  • 可以通过利用 OLE 对象直接从 SQL Server 调用 Web 服务,并具有足够的奉献精神。但是,我强烈建议您不要这样做,因为有许多关于稳定性、性能和监控的警告。看看使用集成服务,或者你选择的任何客户端编程语言——如果你在 Windows 上,PowerShell 的New-WebServiceProxy 允许你很容易地连接 SOAP 服务,并且从它插入东西到 SQL Server 同样简单(@ 987654322@).
  • 通常当我遇到您在 Wonderware 中描述的限制时,我会考虑在 .NET 中构建客户端控件,我可以将其作为脚本函数库导入(在 ArchestrA IDE 中)。您是否有足够的 .NET 知识(VB 或 C#)来构建基本的客户端控件库并在 Wonderware 之外进行测试?如果您可以让它在 Wonderware 之外运行,请尝试导入 .DLL 并从 ArchestrA 图形脚本运行它。
  • @JeroenMostert 谢谢,Powershell 代理似乎可以解决问题。以前从未使用过 PS(或听说过代理),但设置凭据和使用 Web 服务的测试方法效果很好,稍后我会弄清楚细节。现在......我该如何接受这个答案?
  • 简单,你把它写下来并接受它。绝对允许自我回答问题,因为有人懒得将一次性评论变成完整的答案。 :-)

标签: sql-server web-services wonderware


【解决方案1】:

引用 Jeroen Mostert 的评论:“如果您在 Windows 上,PowerShell 的 New-WebServiceProxy 允许您非常轻松地连接 SOAP 服务,并且从它向 SQL Server 插入东西同样简单(Invoke-Sqlcmd) .

这种方法有效。总结一下步骤,直到我从网络服务中得到答案:

  • 升级到 PowerShell 5.1(Win7 VM 没有)
  • 设置WebServiceProxyby microsoft guide
  • 添加凭据、属性和测试方法by external guide,解决身份验证问题并获取所需的输入格式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 2013-08-25
    • 1970-01-01
    • 2013-04-03
    • 2014-11-30
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    相关资源
    最近更新 更多