Bạn có thể cho tôi biết chính xác điều gì xảy ra khi chúng tôi chỉnh sửa Web.config (trong thời gian chạy) trên máy chủ IIS không?


11

Bạn có thể cho tôi biết chính xác điều gì xảy ra khi chúng tôi chỉnh sửa Web.config (lúc chạy) trên máy chủ IIS.

Ứng dụng phụ thuộc vào web.config có tự động khởi động lại không? Nếu có, có thể hủy tự động khởi động lại (hoặc tải lại web.config) không?


Bạn có thể thử bật kiểm tra truy cập tệp để xem liệu IIS có đọc web.config hay không sau khi bạn sửa đổi nó.
Eric H

Câu trả lời:


10

ASP.NET AppDomain được khởi động lại bất cứ khi nào bạn 'chạm' web.config. Bạn có thể tắt Thông báo thay đổi tệp (FCN) cho một thư mục, nhưng thường không phải là đặt cược tốt nhất nếu bạn có thể giúp đỡ. Nếu bạn tắt nó đi, điều đó chỉ có nghĩa là bạn cần tái chế thủ công nhóm ứng dụng để các thay đổi có hiệu lực.

Trước IIS7, chỉ các thay đổi ASP.NET sẽ khiến tái chế AppDomain, nhưng với IIS7 và nhiều cài đặt sống trong web.config, đây là sự cố phổ biến hơn. tức là thay đổi tài liệu mặc định trong Trình quản lý IIS 7 sẽ khiến AppDomain đó được tái chế ngay bây giờ.

Lý tưởng nhất là bạn chỉ cần giảm tốc độ thay đổi hoặc đôi khi áp dụng thay đổi cho applicationhost.config (không gây ra tái chế AppDomain) thay vì web.config.


4

Ứng dụng sử dụng web.config sẽ khởi động lại khi bạn thay đổi, có thêm thông tin ở đây:

http://msdn.microsoft.com/en-us/l Library / ms178473.aspx

Tôi không biết cách nào để ngăn chặn điều này xảy ra (và tôi không chắc tại sao bạn muốn - có lẽ bạn có thể cung cấp thêm một số chi tiết về những gì bạn đang cố gắng đạt được).


3

FYI - Trong ASP.NET 2.0, bạn có thể sử dụng Sự kiện theo dõi sức khỏe tích hợp để đăng nhập khởi động lại ứng dụng cùng với lý do khởi động lại. Điều này sẽ cho phép bạn ghi lại rõ ràng khi nào và tần suất xảy ra. Điều này được thực hiện bằng cách chỉnh sửa web.config chính cho máy.

Để biết thêm thông tin:

http://bloss.msdn.com/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-rec đua.aspx


3

[CHỈ MỘT LƯU Ý]

Tôi biết đây là một cái cũ nhưng điều này vẫn đáng được ghi nhận.

Scott Forsyth - Câu trả lời MVP không chính xác.

ASP.NET AppDomain được khởi động lại bất cứ khi nào bạn 'chạm' web.config.

Cái này sai.


Câu trả lời Whisk câu trả lời đúng và đầy đủ về mặt kỹ thuật nhất vì nó bao gồm một liên kết đến MSDN bao gồm một chi tiết quan trọng:

Khi cần khởi động lại ứng dụng, ASP.NET sẽ phục vụ tất cả các yêu cầu đang chờ xử lý từ miền ứng dụng hiện có và các hội đồng cũ trước khi khởi động lại miền ứng dụng và tải các cụm mới.

Điều này đặc biệt quan trọng khi chúng ta đang nói về các dịch vụ web. Điều này cho thấy có thể ổn khi khởi động lại giữa ngày một cách an toàn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.