我有一个单向接收端口,其中包含使用sqlBinding类型的WCF-Custom XMLReceive位置。接收位置绑定设置为每分钟轮询并执行SQL Server存储过程。 “polledDataAvailableStatement”和“PollingStatement”中有一个过程。问题是,这些永远不会被执行,并且没有产生我可以找到的错误。
我有多个端口/位置设置如下,除了一个之外它们都正常工作。这个可以在我自己的机器上正常工作,但是当我部署到生产时它没有。 SQL事件探查器告诉我存储过程永远不会触发。我使用绑定中所有内容的默认设置,除了过程名称和轮询时间。 biztalk中没有记录错误。跟踪的消息事件显示其他业务流程,但不显示映射到相关端口的业务流程。
我尝试过重新导出和导入MSI。我已将服务帐户设置为数据库服务器上的sysadmin。我已经通过从另一个正在工作的接收位置复制/粘贴它们来验证连接字符串。我重新启动了托管实例,当然还有应用程序。我所做的一切似乎都无法解决这个问题。寻找故障排除技巧。
答案 0 :(得分:2)
之前我遇到过这个问题,这反映了这个特定SQL服务器和BTS之间DTC通信的问题。
当您设置" UseAmbientTransaction"时,您可以尝试解决此问题。财产到假。 这可以避免您在两台服务器之间遇到有关分布式事务协调器的问题。 请注意,只要此属性设置为False,就不会执行PollDataAvailableStatement。
之后重启主机。
UseAmbientTransaction的影响: http://social.technet.microsoft.com/wiki/contents/articles/3470.typed-polling-with-wcf-sql-adapter-best-practices-and-troubleshooting-tips.aspx
配置DTC: https://msdn.microsoft.com/en-us/library/jj248704.aspx
答案 1 :(得分:1)
这种情况似乎很奇怪,特别是你没有看到任何错误(接收主机正在运行的服务器的EventViewer日志)。它只能在以下条件下发生:
如果all按预期设置,则尝试创建一个新的Receive端口并使用一个简单的select语句来测试它。
答案 2 :(得分:0)
您的主机实例帐户是否有权运行该存储过程?