如果您要開發自定義配接器,您可以修改和執行軟體開發工具包 (SDK) 中範例檔案配接器隨附的其中一個登錄檔,以向 BizTalk Server 註冊它。 或者,您可以使用配接器登錄精靈來建立登錄檔。 此精靈位於 \Program Files (x86)\Microsoft BizTalk Server <VERSION>Utilities\AdapterRegistryWizard 資料夾中。
這很重要
- 在32位電腦上,必須從命令提示字元執行配接器註冊精靈所產生的登錄 (.reg) 檔案。
- 在 64 位電腦上,必須從 32 位和 64 位命令提示字元執行配接器註冊精靈所產生的登錄 (.reg) 檔案。
建立登錄項目之後,您可以在 BizTalk Server 管理控制台中新增配接器,或使用 Windows Management Instrumentation (WMI) 方法以程式設計方式新增適配卡。 此主題探討每個登錄項目,接著引導您如何在自定義配接器中找到修改現有登錄檔案的位置和方式。
如需使用配接器登錄精靈的指示,請參閱配 接器登錄精靈。 如需修改 SDK 中包含的範例登錄檔案的指示,請參閱 配接器註冊檔案。
登錄機碼
您需要建立下列登錄項目來部署適配器:
登錄機碼位置
[HKEY_CLASSES_ROOT\CLSID\{%uuid of custom transport%}\BizTalk]
@="BizTalk"
類型名稱
配接器類型名稱會識別 BizTalk Server 電腦中的配接器類型。 任何配接器都需要此金鑰。
"TransportType"="MyTransportAdapter"
條件約束
配接器條件約束會定義配接器的功能。
每個配接器都需要此金鑰。 視您要建立的配接器類型而定,您可能想要修改條件約束的位掩碼值。
"Constraints"=dword:00003C0b
描述配接器功能的值可以是下表所示的值組合。
價值觀 | 十六進位值 | 旗標 | 說明 |
---|---|---|---|
1 | 0x0001 | e協議支持接收 | 配接器支援接收作業。 |
2 | 0x0002 | 協議支援傳輸 | 配接器支援傳送作業。 |
8 | 0x0008 | e協議接收可創建 | 適配器的接收處理程式裝載於處理程序中。 |
128 | 0x0080 | 協議支援請求回應 | 配接器支援要求-回應作業。 |
256 | 0x0100 | eProtocolSupportsSolicitResponse | 轉接器支援請求-回應操作。 |
1024 | 0x0400 | 出站協議需要上下文初始化 | 指出配接器使用 Adapter Framework 使用者介面進行傳送處理程式組態。 |
2048 | 0x0800 | 電子入站協定需要上下文初始化 | 指出配接器使用 Adapter Framework 使用者介面進行接收處理程式組態。 |
4096 | 0x1000 | eReceiveLocationRequiresContextInitialization | 指出配接器使用 Adapter Framework 使用者介面進行接收位置設定。 |
8192 | 0x2000 | eTransmitLocation需要上下文初始化 | 指出配接器使用配接器 Framework 使用者介面進行傳送埠設定。 |
16384 | 0x4000 | 有序交付支持 | 表示配接器支援已排序的訊息傳遞。 |
32768 | 0x8000 | eInitTransmitterOnServiceStart | 傳送配接器會在服務啟動時啟動,而不是當它傳送第一則訊息時啟動。 |
65536 | 0x10000 | eSupport32BitOnly | 表示配接器只支援在32位主機中執行。 |
Namespace
每個配接器都必須為其屬性定義命名空間。 BizTalk Server 會將配接器特定屬性儲存在此命名空間下的訊息內容上。 所有配接器都需要這個屬性。
"PropertyNameSpace"="namespace"
別名
每個配接器可能都有一組前置詞,可唯一識別 BizTalk Server 內的配接器類型。 這使得在透過動態傳送埠傳送訊息時,能解析正確的傳輸類型。 配接器必須在註冊時指定其前置詞的清單。
"AliasesXML"="<AdapterAliasList><AdapterAlias>sample://</AdapterAlias></AdapterAliasList>"
設定屬性頁面
配接器必須具有組態屬性頁,才能設定其接收位置和傳送埠。 每個配接器都會藉由指定其各自的類別標識碼來註冊其屬性頁。
"InboundProtocol_PageProv"="{%CLSID for inbound protocol prop page%}"
"OutboundProtocol_PageProv"="{%CLSID for outbound protocol prop page%}"
"ReceiveLocation_PageProv"="{%CLSID for receive location prop page%}"
"TransmitLocation_PageProv"="{%CLSID for transmit location prop page%}"
如果配接器使用 Adapter Framework 的使用者介面來產生屬性頁,則必須為登錄機碼指定下列值:
"InboundProtocol_PageProv"="{2DE93EE6-CB01-4007-93E9-C3D71689A281}"
"OutboundProtocol_PageProv"="{2DE93EE6-CB01-4007-93E9-C3D71689A283}"
"ReceiveLocation_PageProv"="{2DE93EE6-CB01-4007-93E9-C3D71689A280}"
"TransmitLocation_PageProv"="{2DE93EE6-CB01-4007-93E9-C3D71689A282}"
請注意,如果其中一個端點並非必需(配接器僅傳送或接收),則可以從使用者記錄中刪除未使用的機碼。
執行階段元件註冊
配接器會藉由指定其類別標識碼(針對 COM 和 .NET)、類型名稱和元件路徑(適用於 .NET)來註冊其運行時間元件,以接收和傳送運行時間元件。
備註
所有 OutboundEngineCLSID 和 InboundEngineCLSID 索引鍵都必須是唯一的。 對於資料庫中的單一數據列, OutboundEngineCLSID 和 InboundEngineCLSID 可能相同。
"OutboundEngineCLSID"="{%CLSID of outbound transport%}"
"InboundEngineCLSID"="{%CLSID of inbound transport%}"
"InboundTypeName"="BizTalk.Samples.Adapters.MyReceiver"
"OutboundTypeName"="BizTalk.Samples.Adapters.MyTransmitter"
"InboundAssemblyPath"="C:\Program Files\MyTransport.dll"
"OutboundAssemblyPath"="C:\Program Files\MyTransport.dll"
備註
您可以將配接器的元件安裝到全域程式集緩存中,並在登錄檔中參考它。
註冊 SSO 組態存放區的配接器屬性
配接器必須向 BizTalk Server SSO 資料庫註冊其屬性,才能在設計時間和運行時間儲存和擷取屬性。
ReceiveHandlerPropertiesXML
ReceiveLocationPropertiesXML
SendHandlerPropertiesXML
SendLocationPropertiesXML
這些值包含與配接器相關的對應實體允許屬性的定義(架構),這些屬性可以儲存在組態存放區中。 這些定義會保留為 XML 字串,該字串是由包含屬性類型但不含值的屬性包還原串行化。 屬性元素的無空白值表示屬性已遮罩。 (「遮罩」表示這個屬性為僅可寫入的,且在以管理模式呼叫時,Secure Store API 不會回傳該屬性;針對這類屬性,Secure Store API 會回傳 VT_NULL。)
範例
HTTP 配接器會使用下列值來定義 SendLocationPropertiesXML 登錄機碼,以註冊 HTTP 傳送埠的屬性:
<CustomProps><Username vt="8"/><Password vt="8">Encrypted</Password><Certificate vt="8"/><RequestTimeout vt="3"/><MaxRedirects vt="3"/><ContentType vt="8"/><UseProxy vt="11"/><ProxyName vt="8"/><ProxyPort vt="3"/><ProxyUsername vt="8"/><ProxyPassword vt="8">Encrypted</ProxyPassword><UseHandlerSetting vt="11"/><AuthenticationScheme vt="8"/><UseSSO vt="11"/><AffiliateApplicationName vt="8"/></CustomProps>
將元件註冊為傳輸提供者
配接器必須在登錄中的 [實作類別] 屬性下註冊為傳輸提供者。 這個屬性會向適配卡的取用者識別其特性。
[HKEY_CLASSES_ROOT\CLSID\{%uuid of custom transport%}\Implemented Categories]
[HKEY_CLASSES_ROOT\CLSID\{%uuid of custom transport%}\Implemented Categories\{7F46FC3E-3C2C-405B-A47F-8D17942BA8F9}]