更新應用程式的最佳做法
本主題描述您在更新 BizTalk 應用程式和成品時應考慮使用的最佳做法。
版本控制
實作版本設定策略
如果使用長時間執行的交易,或無法關閉 BizTalk 應用程式來執行升級或錯誤修正,則良好的版本控制策略是不可或缺的。 您應該規劃所有 BizTalk 成品的版本控制策略:架構、對應、自訂配接器、管線、管線元件、協調流程、商務規則、BAM,以及協調流程和對應中呼叫的自訂類別。
比對 BizTalk 管理資料庫中的元件和全域組件快取 (GAC)
請確定與 GAC 相同的元件版本位於 BizTalk 管理資料庫中,以便讓應用程式正常運作。 如果您沒有總是在部署組件時將其安裝到 GAC 中,就可能會在 GAC 和 BizTalk 管理資料庫中擁有不同的版本,這樣將會造成執行階段期間的處理錯誤。
使用 BizTalk 元件檢查程式和遠端 GAC 工具來驗證版本控制
BizTalk 元件檢查程式和遠端 GAC 工具 (BTSAssemblyChecker.exe) 會檢查部署至 BizTalk 管理資料庫的元件版本,並確認這些元件已在所有BizTalk Server電腦上 GAC 中正確註冊。 您可以使用此工具來確認所有 BizTalk 節點上都已安裝包含特定 BizTalk 應用程式成品的所有元件。 此工具特別適合搭配實作版本控制策略,以驗證每個 BizTalk 電腦上已安裝一組正確版本的元件,特別是使用並存部署方法時。
此工具可在 Support\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 資料庫,並停止並取消列出任何執行中的實例。 若要停止並取消列出執行中的實例,所有已解除凍結或暫停的實例都必須手動繼續和完成,或終止。
雖然不必為了更新成品或安裝應用程式而停止應用程式,我們還是建議您一律在更新成品時停止應用程式。