Exception handling 捕获BizTalk中的FTP接收连接异常

Exception handling 捕获BizTalk中的FTP接收连接异常,exception-handling,biztalk,biztalk-2010,Exception Handling,Biztalk,Biztalk 2010,我有一个连接到FTP服务器的BizTalk演示 但是,可能会出现各种例外情况,例如: 服务器可能不可用 用户名/密码可能会更改 由于权限等原因,下载后删除文件可能无法工作 这些将在错误日志中生成异常 然而,我看不到任何简单的方法来处理这些异常 正在编写自定义WMI适配器以轮询错误日志,并尝试根据适配器名称匹配异常 使用FTP适配器的日志功能并分析日志文件中的FTP异常 internet上的解决方案似乎围绕启用“失败的消息路由”或使用ESB异常处理程序展开。但是,我相信这两种方法都需要实际的消

我有一个连接到FTP服务器的BizTalk演示

但是,可能会出现各种例外情况,例如:

  • 服务器可能不可用
  • 用户名/密码可能会更改
  • 由于权限等原因,下载后删除文件可能无法工作
这些将在错误日志中生成异常

然而,我看不到任何简单的方法来处理这些异常

  • 正在编写自定义WMI适配器以轮询错误日志,并尝试根据适配器名称匹配异常
  • 使用FTP适配器的日志功能并分析日志文件中的FTP异常
  • internet上的解决方案似乎围绕启用“失败的消息路由”或使用ESB异常处理程序展开。但是,我相信这两种方法都需要实际的消息,如果适配器遇到异常并且无法连接,就不会有实际的消息

    我考虑过一种可能性,但不认为是可能的,就是在编排中动态地执行“接收”,并在那里捕获异常——这可能吗

    如果没有,在收集消息之前是否有方法捕获接收适配器引发的异常

    谢谢

    BizTalk将通过发生错误并关闭接收位置来“处理”这些异常情况。这是正常的,我认为是非常合理的行为

    在此实例中,BizTalk尚未停止工作。将消息接收到接收端口的其他方法将继续工作

    我不知道你想要什么样的处理方式?有很多方法可以监视事件日志

    作为异常的结果,您希望发生什么

    在回答另一个问题时,您可以通过从业务流程调用.net组件来“动态执行接收”。您可以有一个围绕表达式形状循环的编排,该表达式形状“轮询”FTP服务器。在这种情况下,您肯定可以访问常规异常处理机制

    另外,您认为失败的邮件路由依赖于存在邮件,这是正确的。例如,如果入站消息在管道处理过程中失败

    BizTalk将通过发生错误并关闭接收位置来“处理”这些异常情况。这是正常的,我认为是非常合理的行为

    在此实例中,BizTalk尚未停止工作。将消息接收到接收端口的其他方法将继续工作

    我不知道你想要什么样的处理方式?有很多方法可以监视事件日志

    作为异常的结果,您希望发生什么

    在回答另一个问题时,您可以通过从业务流程调用.net组件来“动态执行接收”。您可以有一个围绕表达式形状循环的编排,该表达式形状“轮询”FTP服务器。在这种情况下,您肯定可以访问常规异常处理机制


    另外,您认为失败的邮件路由依赖于存在邮件,这是正确的。例如,如果入站消息在管道处理过程中失败

    好的,所以问题是,假设文件位置不可访问,或者FTP适配器失去连接,或者服务器关闭,我希望能够通过电子邮件发送异常,就像发送适配器上的传递通知一样。必须将每个组件重写为自定义组件,以便在messagebox中获得模糊和非特定的异常(例如,不要提及哪个应用程序或端口)错误日志上的异常似乎是不幸的过度处理。我同意,当连接问题导致接收位置失败时,将某种错误信息发布到消息框中是一个不错的功能。然而,在实践中,我想不出任何方法来实现这一点,除非通过从orch内联轮询FTP。类似于SCOM的东西有一个BizTalk管理包,它将根据BizTalk中特定类型的事件日志错误发出警报。好的,那么问题是,假设文件位置不可访问,FTP适配器失去连接,或者服务器关闭,我希望能够通过电子邮件发送异常,就像我可以在发送适配器上发送通知一样。必须将每个组件重写为自定义组件,以便在messagebox中获得模糊和非特定的异常(例如,不要提及哪个应用程序或端口)错误日志上的异常似乎是不幸的过度处理。我同意,当连接问题导致接收位置失败时,将某种错误信息发布到消息框中是一个不错的功能。然而,在实践中,我想不出任何方法来实现这一点,除非通过从orch内联轮询FTP。类似于SCOM的东西有一个BizTalk管理包,它将根据BizTalk中特定类型的事件日志错误发出警报。