MattB đánh nó ra khỏi nước. +1 Tôi sẽ trả lời với nhiều chi tiết hơn nhưng tôi không muốn lấy điểm của anh ấy. Tôi sẽ thêm vào những gì anh ấy nói.
Tôi có một thiết lập tương tự như những gì anh ấy mô tả, và nó hoạt động rất tốt. ARR là cách để đi, ngay cả trên một máy chủ.
Tuy nhiên, một vài điều tôi sẽ thêm.
Tạo 2 trang web, như Matt khuyến nghị. Gọi cho họ một cái gì đó như yoursite.com01 và yoursite.com02.
Tạo 2 quy tắc Viết lại URL. Một cho www.yourdomain.com và thêm một staging.yourdomain.com. Để sản xuất, hãy sử dụng {HTTP_HOST} với giá trị (^ www.yourdomain.com $) | (yourIP). (hoặc bất kỳ ràng buộc nào bạn thích) Để dàn dựng, hãy sử dụng {HTTP_HOST} với giá trị là (^ staging.yourdomain.com $). Gọi các quy tắc yoursite.com và staging.yoursite.com.
Quy tắc Bind = yoursite.com đến trang web = yoursite.com01 và rule = staging.yoursite.com đến trang web = yoursite.com02.
Thiết lập FTP trên staging.yoursite.com.
Lưu lượng sản xuất hiện sẽ chuyển đến Rule = staging.yoursite.com và Site = yoursite.com01. Lảo đảo sang phía đối diện.
Bạn có thể triển khai để dàn dựng tại bất kỳ điểm nào, thử nghiệm, trước khi quay, kiểm tra người khác, v.v. Thực hiện trong ngày, điều đó không thành vấn đề. Triển khai vào cùng một tài khoản FTP mỗi lần. Hoạt động tuyệt vời với các máy chủ xây dựng.
Sau đó, khi bạn sẵn sàng phát trực tiếp, chỉ cần thực hiện 3 thay đổi: - di chuyển ràng buộc FTP từ yoursite.com02 sang yoursite.com01 - thay đổi Quy tắc viết lại URL yoursite.com để trỏ đến yoursite.com02 - thay đổi quy tắc Viết lại URL. yoursite.com để trỏ đến yoursite.com01
Bây giờ bạn có Zero thời gian chết, chuyển đổi tức thì, với chức năng khôi phục ngay lập tức!
Gotcha duy nhất của bạn để xem xét là trạng thái ngoài phiên của bạn. Đảm bảo rằng máy chủ trạng thái của bạn chấp nhận cả hai id trang web để bạn không bị mất trạng thái phiên trong quá trình trao đổi.
Cũng lưu ý rằng đây chỉ là web và không phải cơ sở dữ liệu.
Để tạo kịch bản, sử dụng Trình chỉnh sửa cấu hình. Thực hiện các thay đổi mà bạn muốn và sau đó nhấp vào "Tạo tập lệnh". Nó sẽ cung cấp cho bạn mã C #, appcmd hoặc AHAdmin.
Tôi đã có điều này tại chỗ trong một vài tháng với giao diện người dùng để trao đổi các trường hợp và tôi không bao giờ nhìn lại. Nó làm cho việc triển khai trở nên mới mẻ so với việc triển khai truyền thống.