2008-11-13 126 views
2

是否有人熟悉为BTS设置WCF-nettcp适配器?BizTalk发布net.tcp WCF服务

当我为接收位置创建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。

回答

1

有趣的是,它花了walkthrough about publshing Net-Msmq WCF service推动我思考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端点的实际服务。