使用下面的代码创建一个FILE类型的发送端口和一个FILE类型的接收端口。这是使用 ExplorerOM 最简单的形式。 using System; using Microsoft.BizTalk.ExplorerOM; namespace TestEOM { class Program { static void Main(string[] args) { BtsCatalogExplorer catalog = null; try { // Connect BizTalk catalog = new BtsCatalogExplorer(); catalog.ConnectionString = "Data Source=.;Initial Catalog=BizTalkMgmtDb;Integrated Security=SSPI;"; // Create Application IBizTalkApplication application = catalog.AddNewApplication(); application.Name = "MyApp"; catalog.SaveChanges(); // Create ReceivePort IReceivePort2 rp = application.AddNewReceivePort(false); rp.Name = "MyRP"; // Create ReceiveLocation IReceiveLocation2 rl = rp.AddNewReceiveLocation(); rl.Name = "MyRL"; rl.TransportType = catalog.ProtocolTypes["FILE"]; rl.ReceiveHandler = GetReceiveHandler(catalog, "FILE", "BizTalkServerApplication");//catalog.ReceiveHandlers[""]; rl.ReceivePipeline = catalog.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"]; rl.Address = @"C:/Users/btslabs/Desktop/Test/In/*.*"; // Create SendPort ISendPort2 sp = application.AddNewSendPort(false, false); sp.Name = "MySP"; sp.PrimaryTransport.TransportType = catalog.ProtocolTypes["FILE"]; sp.PrimaryTransport.SendHandler = catalog.SendHandlers["BizTalkServerApplication"]; sp.PrimaryTransport.Address = @"C:/Users/btslabs/Desktop/Test/Out/%MessageID%.xml"; sp.SendPipeline = catalog.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"]; // Bind SP with RP sp.Filter = "<Filter><Group><Statement Property=/"BTS.ReceivePortName/" Operator=/"0/" Value=/"" + rp.Name + "/" /></Group></Filter>"; // Start BizTalk Application application.Start(ApplicationStartOption.StartAll); // Save changes catalog.SaveChanges(); } catch (Exception ex) { // Cancel changes Console.WriteLine("Exception: " + ex.Message); if (catalog != null) catalog.DiscardChanges(); } } // Get ReceiveHandler static ReceiveHandler GetReceiveHandler(BtsCatalogExplorer catalog, string adapterName, string hostName) { for (int i = 0; i < catalog.ReceiveHandlers.Count; ++i) { ReceiveHandler rh = catalog.ReceiveHandlers[i]; if (string.Compare(adapterName, rh.TransportType.Name, true) == 0 && string.Compare(hostName, rh.Host.Name, true) == 0) { return rh; } } return null; } } }