管線工具
Microsoft BizTalk Server軟體發展工具組所提供的管線工具 (SDK) 可讓您確認管線是否正常運作,而不需要設定BizTalk Server環境,例如傳送/接收埠。 您也可以使用管線工具執行下列工作:
對伺服器環境外部的協力廠商管線元件進行偵錯。
診斷剖析引擎錯誤訊息。
嘗試各種不同的結構描述,同時免除編譯、部署、解除部署和重新編譯的負擔。
瀏覽一般檔案和 XML 組合器/解譯器的行為。
檢視解譯器輸出,並探索已升級的訊息內容屬性以及這些屬性的值。
執行沒有解譯器及組合器元件的傳送/接收管線 (例如,您可以檢視 S/MIME 解碼器的輸出)。
僅單獨對管線進行精細的效能測量 (而非整個傳訊子系統)。
<安裝路徑>\SDK\Utilities\PipelineTools
您可以使用管線工具來執行、偵錯及分析管線以及管線元件 (亦即一般檔案和 XML 組合器/解譯器元件)。
下表列出管線工具檔案並說明其用途。
檔案 | Description |
---|---|
DSDump.exe | 可讓您傾印文件結構描述結構,也就是一或多個 XSD 結構描述在記憶體中的輕量型表示法 (不論是否有一般檔案註解)。 當您發生剖析引擎錯誤 (例如 $Root$0$3$2) 且需要將錯誤解碼時,這個工具就很有用。 $ 後面的數字代表出現在文件結構描述中以 0 為基礎的索引或記錄。 |
FFAsm.exe | 執行一般檔案組合器元件,並透過模擬傳送管線直接叫用該元件,讓您能夠查看它如何將使用者的 XML 文件序列化或組合成一般檔案文件。 |
FFDasm.exe | 執行一般檔案解譯器元件,並透過模擬接收管線直接叫用該元件,讓您能夠查看它如何剖析或是將使用者的一般檔案文件解譯成一或多個 XML 文件。 |
Pipeline.exe | 執行傳送管線或接收管線;接受一或多份輸入文件及其組件、XSD 結構描述和相關資訊;以及在管線執行之後產生輸出文件。 Pipeline.exe 無法存取BizTalk Server資料庫,因此不支援在執行期間存取BizTalk Server資料庫的管線,包含 BizTalk Framework 組合器和反組譯程式元件。 |
XMLAsm.exe | 執行 XML 組合器元件,並透過模擬傳送管線直接叫用該元件,讓您能夠查看它如何將使用者的 XML 文件序列化、組合或封裝成輸出 XML 文件。 |
XMLDasm.exe | 執行 XML 解譯器元件,並透過模擬接收管線直接叫用該元件,讓您能夠查看它如何將使用者的 XML 文件剖析、解譯或解除封裝成一或多份 XML 文件。 |
下列各節提供每個檔案的詳細描述。
DSDump.exe 可讓您傾印文件結構描述結構,也就是一或多個 XSD 結構描述在記憶體中的輕量型表示法 (不論是否有一般檔案註解)。
DSDump.exe (文件結構描述傾印工具) 支援下列命令列參數:
DSDump.exe schemaFileName
如果成功,DSDump 便會將文件結構描述列印至主控台。
FFAsm.exe (一般檔案組合器) 支援下列命令列參數:
usage: ffasm document... [-dm documentMask...]-bs bodySchema [ -hs headerSchema ] [ -ts trailerSchema ] [ -c ] [ -d ] [ -sb ] [ -m filenamemask ] [ -en encoding ] [ -v ]
where:
document XML document(s)
documentMask XML document(s) file mask, e.g., c:\\documents\\*.xml
bodySchema Flat File body schema
headerSchema Flat File header schema
trailerSchema Flat File trailer schema
-c Display assembled FF message on the console
-d Demote properties
-sb Set body schema(s) as design-time property
-m Output file name mask (default is %MessageID%)
encoding Output message encoding name (e.g. windows-1252) or
code page (e.g. 936)
-v Verbose mode
file name macros:
%MessageID% FF message identifier (Guid)
%MessagePartID% FF message part identifier (Guid)
例如,如果您想使用標頭和屬性降級,將三份輸入 XML 文件組合成單一的一般檔案文件,請使用下列命令:
FFAsm.exe file_in1.xml file_in2.xml file_in3.xml –hs myHeaderSchema.xsd –bs myBodySchema.xsd -d
FFDasm.exe (一般檔案解譯器) 支援下列命令列參數:
usage: ffdasm document -bs bodySchema [ -hs headerSchema ] [ -ts trailerSchema ] [ -s ] [ -c ] [ -p ] [ -m filenamemask ] [ -en encoding ] [ -v ]
where:
document Flat File document
bodySchema Flat File body schema
headerSchema Flat File header schema
trailerSchema Flat File trailer schema
-s Validate document structure
-c Display disassembled XML message on the console
-p Display promoted properties on the console
encoding Input message body part encoding name (e.g. windows-1252) or code page (e.g., 396)
-m Output file name mask (default is %MessageID%)
-v Verbous mode
file name macros:
%MessageID% XML message identifier (Guid)
%MessagePartID% XML message part identifier (Guid)
例如,如果您想解譯具有標頭、內文和結尾的一般檔案文件,並在主控台上顯示結果,請使用下列命令:
FFDasm.exe file_in.txt –hs myHeaderSchema.xsd –bs myBodySchema.xsd –ts myTrailerSchema.xsd –c
Pipeline.exe (管線工具) 支援下列命令列參數:
usage: pipeline ( pipeline[.btp] | -pt pipelineTypeName [ -an assemblyName ] ) -d document... [ -part part... ] [ -s schema[.xsd][:namespace.type]... ] [ -proj project[.btproj] ] [ -p ] [ -c ] [ -t ] [ -m filenamemask ] [ -pm partfilenamemask ] [ -en encoding ] [ -v ]
where:
pipeline Pipeline file name
pipelineTypeName Compiled pipeline assembly qualified type name (e.g.
"MyPipelines.ReceivePipeline, MyPipelines,
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=e03965cb5971ad66" or full name (e.g.
"MyPipelines.ReceivePipeline") if assembly name is
specified
assemblyName Compiled pipeline assembly file name (e.g.
MyPipelines.dll) or name (e.g. "MyPipelines,
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=e03965cb5971ad66")
document Input document(s)
part Input document's part
schema Schema file name
namespace Schema namespace (as in BizTalk project system)
type Schema type (as in BizTalk project system)
project BizTalk project file
-p Display promoted context properties for receive and
send pipelines, and promote context properties for
send pipelines
-c Display output document on the console
-t Display elapsed time of components execution
filenamemask Output message file name mask (default is
Message_%MessageID%.out)
partfilenamemask Output part file name mask (default is
Part_%MessagePartID%.out)
encoding Output message encoding name (e.g. windows-1252)
or code page (e.g. 936)
-v Verbous mode
note:
You can specify namespace and type for schemas either using namespace.type notation in schema file reference or by using BizTalk project file.
file name macros:
%MessageID% Message identifier (Guid)
%MessagePartID% Message part identifier (Guid)
%MessageNumber% Message number
例如,如果您想使用 mySchema.xsd 從 ReceivePipeline.btp 檔 (其具有 XML 解譯器和 XML 驗證器元件) 執行接收管線,並將結果顯示在主控台中,請使用下列命令:
Pipeline.exe ReceivePipeline.btp –d file_in.xml –s MySchema.xsd:MyProject.MySchema -c
- 或 -
Pipeline.exe ReceivePipeline.btp –d file_in.xml –s MySchema.xsd –proj MyProject.btproj -c
在第一個範例中,架構的限定型別名稱 (MyProject.MySchema) 隨附為命令列引數。 在第二個範中,則是從指定的 BizTalk 專案檔案取得結構描述。
您也可以從編譯的BizTalk Server專案檔執行管線,如下列 (範例所示,管線是由其元件限定類型名稱) 參考:
Pipeline.exe -pt "TestBtsProject.ReceivePipeline, TestBtsProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e03965cb5971ad66" -d in.xml -s PO.xsd -proj TestBtsProject.btproj –c
在下列範例中,管線分別由其類型名稱和組件檔案名稱參考:
Pipeline.exe -pt TestBtsProject.ReceivePipeline –an TestBtsProject.dll -d in.xml -s PO.xsd -proj TestBtsProject.btproj –c
下列範例顯示由其組件名稱所參考的管線:
Pipeline.exe -pt TestBtsProject.ReceivePipeline –an "TestBtsProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e03965cb5971ad66" -d in.xml -s PO.xsd -proj TestBtsProject.btproj –c
Pipeline.exe 會以您用來啟動它的任何認證來執行。 它不會使用一般BizTalk Server主機實例執行的帳戶,因此您可能無法執行包含需要資料庫存取之元件的管線。 請確定您是以擁有所有必要權限的帳戶執行 Pipeline.exe。
您只能使用 Pipeline.exe 來驗證不含協力廠商自訂元件的自訂管線。 如果您使用 pipeline.exe 來驗證具有協力廠商自訂元件的自訂管線,Pipeline.exe 仍會產生所需的輸出。 但是,如果您部署具有協力廠商自訂元件的同一個自訂管線,在接收埠或傳送埠中使用該管線,然後使用 Pipeline.exe 將訊息提交至管線,則管線將會失敗,BizTalk Server 也會傳回錯誤。
XMLAsm.exe (XML 組合器工具) 支援下列命令列參數:
usage: xmlasm document...[-dm documentmask...] -ds documentSchema... [ -es envelopeSchema... ] [ -c ] [ -d ] [ -sd ] [ -m filenamemask ] [ -v ]
where:
document XML document(s)
documentMask XML document(s) file mask, e.g., c:\\documents\\*.xml
documentSchema XML document schema(s)
envelopeSchema XML envelope schema(s)
-c Display assembled XML message on the console
-d Demote properties
-sd Set document schema(s) as design-time property
-d Demote properties
-m Output file name mask (default is %MessageID%)
-v Verbous mode
file name macros:
%MessageID% XML message identifier (Guid)
%MessagePartID% XML message part identifier (Guid)
例如,如果您想使用信封,將兩份輸入 XML 文件組合成單一 XML 文件,並在主控台上顯示結果,請使用下列命令:
FFAsm.exe file_in1.xml file_in2.xml–es myEnvelopeSchema.xsd –ds myBodySchema.xsd –c
XMLDasm.exe 支援下列命令列參數:
usage: xmldasm document -ds documentSchema... [ -es envelopeSchema... ] [ -s ] [ -c ] [ -p ] [ -sd ] [ -se ] [ -m filenamemask ] [ -en encoding ] [ -v ]
where:
document XML document
documentSchema XML document schema(s)
envelopeSchema XML envelope schema(s)
-s Validate document structure
-c Display disassembled XML message on the console
-p Display promoted properties on the console
-sd Set document schema(s) as design-time property
-se Set envelope schema(s) as design-time property
-m Output file name mask (default is %MessageID%)
encoding Input message body part encoding name (e.g., windows-1252) or code page (e.g., 936)
-v Verbous mode
file name macros:
%MessageID% XML message identifier (Guid)
%MessagePartID% XML message part identifier (Guid)
%MessageNumber% XML message number
例如,如果您想解譯具有兩個巢狀信封的 XML 文件,並在主控台上顯示結果,請使用下列命令:
XmlDasm.exe file_in.txt –ds myDocumentSchema.xsd –es myEnvelopeSchema1.xsd –es myEnvelopeSchema2.xsd –c