【发布时间】: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