2012-07-10 36 views
6

Tôi đã đọc bài viết của Phil Haack về cách sử dụng giao diện IRegisteredObject để đảm bảo rằng chuỗi nền hoàn thành khi AppDomain bị gỡ xuống và tôi đã triển khai nó vào mã của mình. Tuy nhiên, tôi không hoàn toàn chắc chắn làm thế nào để mô phỏng một vụ tai nạn AppDomain để kiểm tra nó. Làm thế nào tôi có thể mô phỏng một vụ tai nạn AppDomain?Mô phỏng AppDomain tái chế

Trả lời

9

Cách dễ nhất để có được một AppDomain để tắt máy là làm cho quá trình cha mẹ dừng lại. Trong ASP.NET, bạn có thể thực hiện việc này bằng cách tái chế hoặc dừng nhóm ứng dụng mà mã của bạn đang chạy. Chúng tôi có một số mã mà làm điều đó để đảm bảo đăng nhập được flushed và đó là cách tôi đã thử nghiệm nó trong quá khứ.

Đối với một vụ tai nạn hoàn toàn, tôi không thực sự chắc chắn làm thế nào bạn có thể đi về điều đó ... Môi trường lưu trữ bắt ngoại lệ vì vậy nó có thể không được doable. Bạn có thể thử Environment.Exit hoặc Environment.FailFast sẽ buộc quá trình cha mẹ phải thoát ngay lập tức?

Chỉnh sửa: Tôi quên tùy chọn đơn giản nhất ở đây ... Chỉ cần lưu Web.config - thao tác này sẽ kích hoạt tái chế AppDomain!

Một số khuyết ...

Nếu bạn đang chạy sử dụng IIS bạn có thể tái sử dụng hồ bơi ứng dụng khởi động IIS Manager và làm theo các bước ...

  1. Xác định vị trí ứng dụng của bạn dưới 'Trang web'. Nó có thể nằm dưới một trong các trang web trong đó - có thể là một thư mục ảo.
  2. Nhấp chuột phải vào ứng dụng và chọn 'Quản lý ứng dụng' rồi chọn 'Cài đặt nâng cao'.
  3. Ghi chú về 'Hồ bơi ứng dụng'.
  4. Tìm hồ bơi ứng dụng bên dưới 'Hồ bơi ứng dụng'.
  5. Nhấp chuột phải vào nó và nhấn tái chế.

Đối với IIS Express, bạn có thể chỉ cần nhấp chuột phải vào biểu tượng trong khay và trong giao diện người dùng, bạn sẽ có thể dừng ứng dụng ở đó.

Đối với máy chủ phát triển Visual Studio (Cassini), bạn cũng có thể sử dụng khay để dừng ứng dụng.

+0

Cảm ơn bạn đã trả lời Dean. Tôi đoán những gì tôi đã hỏi là "tái chế hồ bơi ứng dụng" có nghĩa là gì và làm cách nào để thực hiện điều đó cho mục đích thử nghiệm? – hemlocker

+0

Tôi đã thêm một số tùy chọn trong bản chỉnh sửa ở trên! –

+0

Cảm ơn Dean! Bạn là một siêu anh hùng. – hemlocker