C# 自定义.net组件未从Biztalk表达式形状内触发
我有一个测试Biztalk项目,其编排包含两个接收形状、发送形状和一个表达式形状。表达式形状调用用C#编写的引用dll。C#dll位于GAC中,该类被标记为可序列化,并且该类只有一个静态方法,应该在文件夹中的磁盘上创建文件 所有内容都会生成和部署,但当我通过将文件放入Receive文件夹开始编排时,所有形状都会执行它们应该执行的操作,除了表达式形状。这段代码确实有效,因为我已经在本地对它进行了测试,而且该目录是BT应用程序已经在访问的目录,所以我认为这不是一个安全问题 下面是C#代码,下面是我如何从表达式形状中调用代码的,有人能提供一些关于出错原因的建议吗C# 自定义.net组件未从Biztalk表达式形状内触发,c#,biztalk,C#,Biztalk,我有一个测试Biztalk项目,其编排包含两个接收形状、发送形状和一个表达式形状。表达式形状调用用C#编写的引用dll。C#dll位于GAC中,该类被标记为可序列化,并且该类只有一个静态方法,应该在文件夹中的磁盘上创建文件 所有内容都会生成和部署,但当我通过将文件放入Receive文件夹开始编排时,所有形状都会执行它们应该执行的操作,除了表达式形状。这段代码确实有效,因为我已经在本地对它进行了测试,而且该目录是BT应用程序已经在访问的目录,所以我认为这不是一个安全问题 下面是C#代码,下面是我如
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace TestHelp
{
[Serializable]
public class TestWrite
{
public static void CreateFile()
{
FileInfo fi = new FileInfo(@"C:\Unrecorded\Out\DataForProcess\Test.txt");
fi.Create();
}
}
}
表达式形状代码:
TestHelp.TestWrite.CreateFile();
如果我不得不猜测的话,我会说BizTalk可能正在挑选编排dll的旧副本。您确定在尝试之前已在GAC上更新或重新部署它吗?除此之外,了解发生了什么最简单的方法就是将调试器附加到BizTalk实例(BTSNTSvcs.exe)并尝试对其进行调试。。。如果确实加载并执行了C#程序集,您可以很容易地通过这种方式进行检查。捕获任何异常并将其写入事件日志。尝试过这种方法后,没有记录任何内容,因为我认为dll没有被实例化。Biztalk似乎只是忽略了表达式形状。在调试BTSNTSvcs.exe之前,我会尝试Orchestration Debugger,因为您猜测执行的是旧版本的业务流程。