【问题标题】:xs:string field element in BizTalk schema changes to Uint16BizTalk 架构中的 xs:string 字段元素更改为 Uint16
【发布时间】:2020-10-05 15:28:49
【问题描述】:

我在我的 BizTalk 项目中定义了一个来自 JSON 实例的架构。实例键/值在双引号中,因此它们意味着它们是字符串。但是 JSON Schema Wizard 将其设置为 xs:unsignedShort。我将其更改为xs:string。当我运行我的项目并且某些消息包含大于 65535 的数字时,会出现此错误。我从自定义(xml 到 json)管道的跟踪实例中收到此错误: Reason: Value was either too large or too small for a UInt16. 我还检查了 Microsoft BizTalk 管理控制台中的Schemas 选项卡以获取我的架构;架构视图与 Visual Studio 中的项目相同。问题是什么?我很困惑..

【问题讨论】:

  • 您是否重新启动了重新部署架构的主机实例?您是否检查过 GAC 以确保那里的版本已更新?
  • @Dijkgraaf 嗨,你能帮我解决这些问题吗?我确实重新启动了主机实例,但什么也没发生。
  • @Dijkgraaf 我了解了它,所以我有一些问题。如果主机实例重新启动,是否保证 GAC 会更新内容?我还了解了 .NET 中的通用版本控制。我以前没用过。所以我应该在每次部署时更新版本?这解决了问题吗?项目开发中的每个工件是否都指定了版本?我应该如何在 BizTalk 中与 GAC 和版本控制进行交互?附言我是这些东西的初学者,所以当我问多个问题时这听起来可能很疯狂!;) 如果有更好的地方,请指导我在那里提问。谢谢!
  • 是的,重新启动主机实例会强制它卸载内存中的 DLL,并在再次需要它们时从 GAC 重新加载它们。不,您不需要每次都更新程序集版本号,如果事实上我们只更改文件版本,因为更新程序集版本会增加额外的复杂性(研究“biztalk 并行部署”)。不仅每个项目都有一个 Assembly 和 File 版本。

标签: biztalk xsd-validation biztalk-pipelines biztalk-schemas


【解决方案1】:

由于其他用户已经建议,您应该按照以下步骤操作:

  1. 停止进程的宿主实例。
  2. 从控制台停止您的进程(右键单击您的进程并停止)。
  3. 在 Visual Studio 上部署您的解决方案。
  4. 回到控制台!右键单击您的项目并刷新。
  5. 再次启动您的进程(右键单击并开始)。主机实例将是 在您启动流程时自动启动。

有时,除非您不停止主机实例和进程并重新启动它们,否则控制台会缓存旧的进程版本。第 3 步和第 4 步是可选的,但确保已部署该流程的最新版本会很有用。

【讨论】:

    猜你喜欢
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    相关资源
    最近更新 更多