Biztalk脚本functoid失败
在BizTalk映射中,我使用来自外部程序集的脚本functoid。将添加程序集引用。但是,使用映射时,会导致以下错误: “ScriptNS0:DoSomething()”已失败 现在,这可能意味着这个脚本functoid有很多错误。但是,即使将try-catch块放在整个C#代码周围,catch抛出一个自定义异常,正确的新部署也会产生相同的错误,而不是新添加的自定义错误 这意味着映射已经启动,并且一旦遇到脚本functoid,就会导致错误,但实际上没有在函数中执行哪怕是最轻微的操作。当查看地图的XSLT时,它看起来非常好。已反复检查对外部程序集的引用(以及此外部程序集的引用)。一切看起来都很好,非常像我见过的许多其他映射,但结果仍然是上面的错误Biztalk脚本functoid失败,biztalk,biztalk-2010,Biztalk,Biztalk 2010,在BizTalk映射中,我使用来自外部程序集的脚本functoid。将添加程序集引用。但是,使用映射时,会导致以下错误: “ScriptNS0:DoSomething()”已失败 现在,这可能意味着这个脚本functoid有很多错误。但是,即使将try-catch块放在整个C#代码周围,catch抛出一个自定义异常,正确的新部署也会产生相同的错误,而不是新添加的自定义错误 这意味着映射已经启动,并且一旦遇到脚本functoid,就会导致错误,但实际上没有在函数中执行哪怕是最轻微的操作。当查看地图
我意识到这是一个相当模糊的问题,但有人知道这里发生了什么吗?您必须在Visual Studio中进行测试。需要记住的几件事:
BtsNtSvc.exe
或BtsNtSvc64.exe
(或w3wp.exe
,如果它在IIS/隔离主机中运行)。在自定义函数的入口设置一个断点,单步执行,看看发生了什么。如果您只能在非开发环境中复制它,请查看是否可以设置远程调试-但在这种情况下,您最好增强functoid上的日志记录,并在可能的情况下重新部署- 避免引发异常-使用
等方法而不是TryParse
,在解析失败时返回错误字符串或空字符串或原始字符串(取决于目标系统的要求/容差),而不是引发异常。如果确实抛出异常,则不太可能正常处理,也不太可能将异常类型或文本返回给用户/管理员Parse
- 改为在这些场景中记录错误-通常使用Windows事件日志(
)。请确保使用正确注册的事件源,最好是与应用程序名称匹配并由安装过程注册的事件源,但至少要使用计算机上存在的事件源,以避免引发另一个无意义的异常!这将使开发人员/管理员能够更快地了解下一次的情况System.Diagnostics.EventLog.WriteEntry