有人熟悉为 BTS 设置 WCF-nettcp 适配器吗?

当我为接收位置创建 WCF-netTcp 适配器时,我不确定 BTS 如何/何时打开端口 808 来侦听指定的地址 URI。似乎只有当我重新启动整个 BizTalk 应用程序时才会发生这种情况。如果它由于某种原因关闭,我看不到任何重新配置​​和重新打开端口的方法。

此外,由于这只是 net.tcp 绑定,因此没有暴露 mex 端点。我相信希望使用公开的 WCF 服务的客户端应用程序最初需要 mex 元数据。直接从 Visual Studio 项目访问该端点只会产生

Metadata contains a reference that cannot be resolved: 'net.tcp://biztalkserver/PostReceiveLocation_TCP/PostReceiveService.svc'.
Metadata contains a reference that cannot be resolved: 'net.tcp://biztalkserver/PostReceiveLocation_TCP/PostReceiveService.svc'.
If the service is defined in the current solution, try building the solution and adding the service reference again.

无法判断如何正确地将 mex 端点公开给服务。BizTalk WCF 服务发布向导让我感到困惑;我无法让它引用我设置的 WCF 适配器/接收位置。我没有找到任何文档教导人们应该如何使用 netTcp 服务;这都是关于 Http 的。

有帮助吗?

解决方案

有趣的是,它花了 有关发布 Net-Msmq WCF 服务的演练 促使我思考 WCF 服务发布向导的真正工作原理。

问题是这样的:当我手动创建 WCF-netTcp 接收位置时,它有其端点 URI,例如net.tcp://biztalkserver/PostReceiveLocation_TCP/PostReceiveService.svc。当在 WCF 服务发布向导中选择仅发布 mex 端点的选项时,它最终会要求提供 WCF 服务位置,我将其误认为是实际的服务位置。由于它只接受 Http URL,因此它似乎只支持基于 Http 的 WCF 端点。

但对于该文本框,应该放置 Http URL 只是 mex 端点, ,不是实际的 net.tcp WCF 端点。这是 IIS 中向导将创建必要的元数据文件的位置。完成后,托管 mex 端点的该位置将通知客户端位于 net.tcp 端点的实际服务。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top