本主題描述更新 BizTalk 應用程式和成品時應考慮使用的最佳做法。
版本控制
實作版本控制策略
如果使用長時間執行的交易,或無法關閉 BizTalk 應用程式來執行升級或錯誤修正,則良好的版本控制策略至關重要。 您應該規劃所有這些 BizTalk 成品的版本控制策略:架構、映射、自訂配接器、管道、管道元件、流程編排、商務規則、BAM,及流程編排和映射中呼叫的自訂類別。
將 BizTalk 管理資料庫中的組件與全域組件快取 (GAC) 匹配
請確定與 GAC 中的 BizTalk 管理資料庫中的元件版本相同,讓您的應用程式正常運作。 如果您在部署 GAC 時不一定會在 GAC 中安裝元件,則可能在 GAC 和 BizTalk 管理資料庫中有不同的版本,這會導致在運行時間期間發生處理錯誤。
使用 BizTalk 元件檢查程式和遠端 GAC 工具來驗證版本控制
BizTalk 元件檢查程式和遠端 GAC 工具 (BTSAssemblyChecker.exe) 會檢查部署到 BizTalk 管理資料庫的元件版本,並確認已在所有 BizTalk Server 電腦上的 GAC 中正確註冊這些元件。 您可以使用此工具來確認所有 BizTalk 節點上已安裝包含特定 BizTalk 應用程式成品的所有元件。 此工具特別適合搭配穩固的版本控制策略,以驗證每個 BizTalk 計算機上已安裝一元件的正確版本,特別是在使用並存部署方法時。
此工具可在支援\Tools\x86\BTSAssemblyChecker.exe上與 BizTalk Server 安裝媒體搭配使用。
使用版本控制產品
您應該使用版本控制產品,例如 Microsoft Visual Studio® Team Foundation Server 2010,來追蹤和管理 BizTalk 元件的版本。 如需 Microsoft Visual Studio® Team Foundation Server 2010 的詳細資訊,請參閱 Microsoft Visual Studio® Team Foundation Server 2010 (https://go.microsoft.com/fwlink/?LinkId=210637)
將成品納入多個 BizTalk 應用程式
若要執行 BizTalk 構件的組件版本控制,您的 BizTalk 解決方案組件必須以符合 BizTalk Server 版本控制需求的方式封裝。 如需關於因式分解的更多資訊,請參閱 將工件新增至應用程式。
更新應用程式
使用 .msi 檔案來更新應用程式
升級應用程式通常是生產環境中刻意且精確的作業。 當您升級應用程式時,通常應該使用手動檢查清單。 不過,您可以使用 .msi 檔案來簡化特定步驟。 當您使用 .msi 檔案時,可以將應用程式成品包裝成可散發套件。 當您將更新的 DLL 推出至多個運行時間方塊或執行群組層級部署時,.msi 檔案特別有用。 當您建立 .msi 檔案時,應該從套件中排除所有其他未變更的資源和系結。
如果您更新 BizTalk 組件,您應該停止、解除登錄、重新登錄,然後在匯入並安裝 .msi 檔案之前和之後手動啟動 BizTalk 工件。 如需更新 BizTalk 元件的詳細資訊,請參閱 檢查清單:更新元件。
如果您使用並存版本設定升級 BizTalk Server 元件,則必須在使用 .msi 檔案之前和之後執行手動步驟。 如需所需手動步驟的詳細資訊,請參閱 檢查清單:使用並存版本設定更新應用程式。
更新組件
在生產環境中增加組件的版本號
如果您要更新在生產環境中執行的元件,您應該一律遞增元件版本號碼。
使用更新的元件更新 GAC
當您更新包含協調流程、架構或對應的元件集時,必須使用包含新版本的元件集來更新 GAC。 否則,BizTalk Server 會使用過時的版本。 若要這樣做,請在執行應用程式所系結之主機實例的每部計算機上,從 GAC 卸載包含已更新成品的元件過時版本,並確定已安裝新版本。
更新元件之後重新啟動主機實例
如果現有應用程式中的 BizTalk 元件已更新,您可能需要重新啟動主機實例,變更才會生效。 重新啟動主機實例會停止在主機實例上執行的其他所有應用程式。
更新工件
在相依成品所依賴的成品之前取消部署相依成品
如果您要取消部署其他成品依賴的成品,您必須先取消部署相依的成品。
備註
如果您未先取消部署相依成品,BizTalk Server 管理控制台會顯示警告,並防止以不正確的順序取消部署成品。
請勿停止另一個應用程式所依賴的工件
如果您停止一個應用程式中的構件(這可能會導致停止整個應用程式),而且這個應用程式又是其他應用程式所依賴的,那麼相依的應用程式將無法正常運作。 如需停止應用程式的詳細資訊,請參閱 如何啟動和停止 BizTalk 應用程式 (https://go.microsoft.com/fwlink/?LinkID=154729)。
在移動工件之前新增組件的參照
當您將工件移至新的應用程式時,若新的應用程式沒有對包含該工件相依關係之工件的應用程式進行參考,那麼其相依的其他工件也會被移動。 此外,任何相依於已移動成品的成品都會被移動,除非其所屬的應用程式包含到新應用程式的參考。 移動成品時,會顯示也會移動的其他成品清單。
更新系結
自動重新設定系結
- 當您在應用程式中更新元件時,通常會覆寫其系結,否則元件可能完全不系結,強制您手動重新設定系結。 您可以使用系結檔案將這個程式自動化。 如果您要更新相同版本的元件,您可以先匯出元件的系結檔案,然後更新元件,然後將元件匯入應用程式,然後匯入系結檔案以重新套用先前的系結。 如果您要以較新版本更新元件,您可以匯出系結檔案、編輯檔案以反映新的元件版本、將新的元件匯入應用程式,然後匯入系結檔案來套用新的系結。 如需系結檔案的詳細資訊,請參閱如何將系結 匯出至系結檔案。 如需編輯系結檔案的詳細資訊,請參閱 自定義系結檔案 (https://go.microsoft.com/fwlink/?LinkID=155000)。
啟動或停止應用程式
停止應用程式以更新工件
如果您不停止應用程式以更新其成品,您需要通過停用端點暫時停止發行至 MessageBox 資料庫,並停止和取消登錄所有正在執行的實例。 若要停止並取消登錄執行中的實例,所有已解除凍結或暫停的實例都必須手動繼續和完成,或終止。
雖然不需要停止應用程式才能更新成品或安裝應用程式,但建議您在更新成品時一律停止應用程式。