Biztalk 和调用 Web 服务的最佳方式

2023-12-02

我正在编写一个 biztalk 编排,需要调用一个 Web 服务,可能是多个 Web 服务,而且可能不止一次。我面前有两个选择:一,在单独的代码项目中使用 wsdl,并从表达式形状的代码中调用 Web 服务,二,从 Biz 使用它,获取架构等,并通过请求/响应端口进行调用。这里的最佳实践是什么?一方面,如果更新了 wsdl,那么更新代码将比更新架构和端口更容易,而且构建足以用于多个 Web 服务调用的端口似乎会很混乱,需要做很多工作。另一方面,您可以在端口级别进行的所有调整(重试一次)使得调用 Web 服务变得稳健。


另请参阅这个问题here,其中讨论了第三个选项,即使用add service reference在 BizTalk 中作为导入 XSD 的替代方法。

在我看来,如果您使用 .NET 代理来处理集成,那么您就失去了使用 BizTalk 的意义。例如:

  1. 您正在对协议 (WCF) 进行硬编码,现在需要将请求和响应消息编组到自定义代码/从自定义代码编组。通过发送端口,可以在部署时配置任何请求-响应机制 - 对于单元和集成测试特别有用。
  2. 您将失去 BizTalk 消息传递机制的所有优势,例如重试、备份传输、恢复挂起的消息、不同端口的不同映射,以及可以说的整个 pub sub 功能(例如,如果多个侦听器想要侦听来自被调用 Web 服务的响应?)
  3. Where will you store the WCF serviceModel config settings, such as the endpoint etc? i.e. You've lost the flexibility of binding files.
    • etc.

因此,TL;DR 始终在 BizTalk 中使用 WCF 适配器

然而,话虽如此,我同意如果消费的服务发生变化,更新生成的项目可能会很混乱。 FWIW,我们通过以下方式缓解了其中的一些问题:

  • 始终创建一个单独的空文件夹,在其中导入所有 导入生成的工件。
  • 将所有生成的项目保留为“原样”,即不要试图移动虚拟 .odx,或删除它(因为它具有预配置的端口类型)

不幸的是,这使得以下操作仍然需要手动应用:

  • 请记住将端口类型的可见性更改为public如果工件位于与您的编排不同的程序集中
  • 需要重新应用导入模式上的升级和区分属性(例如,记住在进行任何更改后记录屏幕截图)。可能可以通过保存并重新粘贴来简化或自动化<xs:annotation>架构的部分。
  • 如果您在 WCF 服务中使用消息协定,并且在多个应用程序中重复使用相同的引用消息,则需要手动删除由添加生成的项目创建的重复项,然后重新引用现有架构。 (例如,我们有一个标准的“响应”消息返回所有 BizTalk 调用)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Biztalk 和调用 Web 服务的最佳方式 的相关文章

随机推荐

  • 如何从 GLM 输出中获取概率

    我现在非常困惑 因为我试图找出如何计算我的概率glmR 中的输出 我知道数据非常微不足道 但我真的很想知道如何从这样的输出中获取概率 我本来想尝试一下inv logit 但不知道括号内要放什么变量 数据来自占用研究 我正在评估毛发陷阱法与相
  • 从 numpy 数组创建 pandas DataFrame 会导致奇怪的错误

    缺点是 当我尝试从函数 numpy 数组创建 DataFrame 时 它 们会抛出字节顺序错误 这是一个pastebin 更多详细信息如下 http pastebin com Sdg9EM61 在我的领域 我们以 FIT 格式存储数据 这是
  • 我们可以在哪里放置 crossdomain.xml

    您好 我已在应用程序 http myserver 11090 apps 上部署了我的 Flex 应用程序 并使用重定向到应用程序服务器的代理服务器 Web 服务器 https mysite site com 但在运行时应用程序在位置 htt
  • SQLite3 错误 - iOS

    当我进行 SQL 调用时 如何找出 SQLite3 给我的错误 int success sqlite3 prepare v2 database sql 1 stmt NULL if success SQLITE OK NSLog creat
  • 没有 fill_diagonal 的 inf 的 Python 矩阵对角线

    我需要将矩阵的对角线元素设置为 Inf 一个简单的方法是使用np fill diagonal np fill diagonal my matrix float inf However fill diagonal修改输入矩阵 而不是返回填充对
  • 想要删除 Browser.sleep()

    大家好 我正在使用量角器来测试非角度网站 最初在测试时我有browser sleep 这样页面就可以完全加载 我知道添加 browser sleep 不是一个好的测试方法 因此想从代码中删除它 我尝试了 browser wait 但出现错误
  • 匹配第 n 次出现(排除最后一次出现)

    我有一个关于正则表达式的问题 我不知道为什么我不能执行以下操作 例句 This is a test string with five t s 我使用的正则表达式 t 3 我希望正则表达式匹配以下内容 This is a test s 但它不
  • 如何在列中打印嵌套的Python列表

    我有一个程序 它生成一个Python列表作为其输出 该列表是一个嵌套列表 列表 名称 地址 电话号码 的列表 我希望能够以柱状格式打印 似乎在陈述问题时是一个非常简单的想法 但我一直无法找到一种简单的方法来从列表中提取数据 如果我打印 列表
  • 检查套件完成后如何触发 Github 工作流程?

    我只想在特定工作流程完成时触发工作流程 有人知道该怎么做吗 一些背景 我有一个工作流程Tests另一个叫Build feature 我运行我的Tests每个 PR 到分支的工作流程feature 如果某些内容被推送 合并到分支feature
  • 几个 catch 块还是一个带有dynamic_cast 的catch 块?

    我们有一个异常类的层次结构 有一个GenericException类以及从它派生的许多类 GenericException是多态的 它有一个虚拟析构函数 派生类之一是FileException抛出以指示操作文件系统对象时出现错误 FileE
  • PHP 中“&$var”中的“&”是什么意思? [复制]

    这个问题在这里已经有答案了 什么是 意思是在 var in PHP 有人可以帮我进一步解释一下吗 先感谢您 这意味着传递变量参考 而不是传递变量的值 这意味着当程序流返回到调用代码时 对 preparse tags 函数中该参数的任何更改都
  • 使用react-router的history.push()和自定义URL参数

    我正在尝试创建一个用户可以加入群组的应用程序 我拥有的页面之一是群组仪表板 为此 我创建了一个 URL 参数为 id 的路由
  • 禁止带有 `static_assert` 的函数

    我想阻止某些函数被调用 让我们忽略通过函数指针或其他东西调用函数的情况 只关注直接函数调用的情况 我可以这样做 delete 然而 发布的诊断信息并不丰富 我考虑过使用static assert 您可以使用它提供自定义诊断消息 我放置了一个
  • 将二维数组(字符串)存储到文件并检索它

    我制作了一个简单的程序 其中有一个存储大量数据的 2D 字符串数组 我搜索了很多地方来了解如何存储和检索二维数组 我想在程序结束时将数据保存在数组中 并在程序启动时检索该数据 我努力了 ObjectOutputStream toFile n
  • 如何将 java.lang.String 的空白 JSON 字符串值反序列化为 null?

    我正在尝试将一个简单的 JSON 反序列化为 java 对象 然而我却变得空虚String值java lang String属性值 在其余属性中 空白值将转换为null值 这就是我想要的 下面列出了我的 JSON 和相关的 Java 类 J
  • 从 python 中的标签名称中抓取数据

    您好 我正在尝试从网站上抓取用户数据 我需要用户 ID 该 ID 可在标签名称本身中找到 我正在尝试使用 python selenium 和 beautiful soup 中的 UID 来抓取div tag Example lt div i
  • 使用 Android 本机应用程序中的 ADAL 库对 Azure AD 上的用户进行身份验证

    我们有一个要求 用户应该从本机应用程序 Android iOS 登录 而不从应用程序调用 Microsoft 登录 Web 视图窗口 我们有示例代码 演示使用 net 控制台应用程序中的用户名和密码对 Azure AD 进行非交互式身份验证
  • FreeSwitch + Mode Verto + Webrtc + Android + 无法从 android 拨打电话

    我做了一个mode verto安卓客户端 使用WebRtc 预建库 org webrtc google webrtc 1 0 libjingle io pristine libjingle 11139 aar and 自由切换但只成功进行单
  • 启动 JavaFX 应用程序时的内部 NPE

    所以基本上我开始了一个虚拟的 JavaFX 项目 只是为了为我的实际问题实现一个简约的示例 但现在我什至无法再运行那个简约的项目 也没有收到足够的错误信息来自己用谷歌搜索出来 所以现在 当我运行代码时 我收到给定的错误堆栈 这不会引导我到任
  • Biztalk 和调用 Web 服务的最佳方式

    我正在编写一个 biztalk 编排 需要调用一个 Web 服务 可能是多个 Web 服务 而且可能不止一次 我面前有两个选择 一 在单独的代码项目中使用 wsdl 并从表达式形状的代码中调用 Web 服务 二 从 Biz 使用它 获取架构