原系統建構於 IIS 6.0、COM+ 1.5、MSMQ 3.0,採用經典「Web 前端 → COM 元件 → MSMQ 暫存 → 人工審核 → 寫入資料庫」架構。隨業務增長,需支援差異化流程:VIP 客戶/業務代單直接確認,一般客戶仍需人工審核。利用 Windows Server 2003 Application Server 新功能 (應用程式集區、COM+ 分割區、MSMQ 觸發程序),在極少修改程式碼前提下完成架構升級。

iFDemoAdmin.exe) 從佇列讀取、審核。
AppPoolDemo,指定身分 NetUser1 (屬 IIS_WPG、Performance Log Users 群組),實現處理序級隔離與身分模擬。App1Demo 虛擬目錄指向同一 Web 程式碼,但指派至 AppPoolDemo。修改 Login.aspx 邏輯:VIP/業務登入導向 App1Demo,一般客戶留在預設站點。COMPart2,指定 NetUser1 為分割區使用者與啟動器角色。在分割區下建立 COM+ 應用程式 iFDemoExpressOrder,匯入原有 iFDemo.OrderEntry.dll,設定啟動函式字串指向專用佇列 .\\private$\\iFDemo_ExpressOrder。iFDemo_ExpressOrder,設定觸發規則 TransferOrder:訊息標籤不含 "Customer" 時,呼叫 iFDemo.OrderProcess.QueueTrigger.Transfer 自動轉單並寫入資料庫、發信,完全無人介入。Trade.dmp,修改 config 與 Users 表的 SMTP/Email 設定)Trade。iFDemoService (Server 端 COM+ 元件),執行 SetupConfig.exe 安裝效能計數器。iFDemoWeb,修改 Web.config 連線字串。iFDemoOrderEntry 授權 (加入 Network 使用者至 OrderEntryRole)。iFDemoAdmin.exe,修改連線字串。NetUser1,設定密碼永不過期,加入 IIS_WPG、Performance Log Users、Performance Monitor Users。AppPoolDemo,身分設為 NetUser1。App1Demo 指向同一 Web 程式碼,指派集區 AppPoolDemo。Login.aspx:註解原架構程式碼區塊,啟用新架構程式碼區塊,重新建置。iFDemo_ExpressOrder,設定觸發規則 TransferOrder (條件:標籤不含 "Customer",動作:呼叫 iFDemo.OrderProcess.QueueTrigger.Transfer,參數:佇列路徑、訊息 ID)。COMPart2,指定 NetUser1 為分割區使用者與啟動器。COMPart2 下建立 COM+ 應用程式 iFDemoExpressOrder,匯入 iFDemo.OrderEntry.dll,設定啟動函式字串 .\\private$\\iFDemo_ExpressOrder,授權 NetUser1 為 OrderEntryRole。| 角色 | 帳號/密碼 | 登入後網址 | 訂單處理方式 |
|---|---|---|---|
| VIP 客戶 | user1 / 9999 | https://localhost/App1Demo/Order/OrderProcess.aspx | 直接確認、發信 |
| 一般客戶 | user2 / 9999 | https://localhost/iFDemoWeb/Order/OrderProcess.aspx | 進入佇列待人工審核 |
| 業務人員 | sales1 / 9999 | https://localhost/App1Demo/Order/OrderProcess.aspx | 直接確認、發信 |
原始碼下載:https://www.vckbase.com/code/downcode.asp?id=2560
本文配套完整原始碼與部署腳本可供下載。