Điều gì xảy ra khi tôi chỉnh sửa web.config?


79

Tôi cần chỉnh sửa tệp web.config trên môi trường Sharepoint trực tiếp, nhưng tôi không chắc điều gì sẽ xảy ra nếu tôi làm vậy (tôi muốn xuất ra các lỗi tùy chỉnh).

Điều này có khiến quy trình công nhân IIS6 tái chế không?

Người dùng đang hoạt động có bị mất trạng thái phiên của họ vì điều này không?

Hoặc tôi có thể chỉnh sửa tệp một cách an toàn?


Bạn có thể xác định phiên để được đặt trên một máy từ xa, do đó thiết lập lại ứng dụng sẽ không gây ra phiên bị mất
Kamarey

Câu trả lời:


78

Nhóm ứng dụng sẽ khởi động lại và trạng thái phiên sẽ bị mất. Hãy tưởng tượng mỗi ứng dụng ASP.NET (như được định nghĩa trong IIS) là một chương trình trên máy tính để bàn. Lưu web.config sẽ thực hiện một việc tương tự như đóng chương trình và mở lại nó.


10
Không chắc chắn về IIS6, nhưng trong IIS7 và IIS8, đây là hành vi mặc định , mặc dù bạn có thể thay đổi nó thông qua Application Pools> Advanced Options> Recycling> Disable Recycling for configuration changes = true , ví dụ: hữu ích cho môi trường sản xuất, để quản trị viên có thể thực hiện một thay đổi không cần thiết cho đến lần tái chế tiếp theo. Với Sharepoint cụ thể, có một cách để lên lịch các thay đổi để chúng được áp dụng vào một thời điểm cụ thể, tôi tin.
cần thiết

3
@nothingis Cần thiết Nhưng, Application Pools > Advanced Options > Recycling > Disable recycling bản thân thiết lập có gây ra việc tái chế nhóm ứng dụng không? Những con rùa đều lặn xuống dưới?
D'Arcy Rittich

1
Xin chào @DanGoldstein. Bạn đề cập đến ' điều gì đó tương tự ' để đóng chương trình và mở lại. Còn trạng thái tĩnh thì sao? Trạng thái tĩnh có được đảm bảo xóa sạch bằng chỉnh sửa web.config không? Lý do là tôi lưu một số nội dung web.config trong các biến tĩnh.
Dirk Boer

Thành thật mà nói, tôi không phải là một nguồn thông tin tốt về điều này nữa. Khi tôi trả lời, tôi đang sử dụng IIS và ASP.Net toàn thời gian. Những ngày này tôi chỉ là một nhà phát triển phần mềm theo sở thích.
Dan Goldstein

@DirkBoer Toàn bộ lý do tôi ở đây là để tìm ra câu trả lời chính xác cho câu hỏi của bạn. Theo kinh nghiệm của tôi, việc chỉnh sửa web.config không ảnh hưởng đến các thuộc tính tĩnh.
Alex Dresko


9

Ngoài ra, nếu trạng thái Phiên được định cấu hình là ngoài quy trình (cơ sở dữ liệu hoặc dịch vụ) thì việc tái chế nhóm ứng dụng sẽ không mất bất kỳ trạng thái phiên nào. Điều này đúng đối với Sharepoint cũng như đối với ASP.Net vani.


2

Khi bạn chỉnh sửa web.config, Nó sẽ khởi động lại AppDomain (KHÔNG phải AppPool) của ứng dụng web đó và xóa tất cả tài nguyên và bộ nhớ bị chiếm dụng. Vì vậy các ứng dụng web khác đang chạy trong App Pool đó sẽ không bị ảnh hưởng. Ngoài ra, nó sẽ xóa các phiên (in-proc) và bộ nhớ cache.


1

Như đã được đề cập bởi một số người: nhóm ứng dụng của trang web trong IIS sẽ khởi động lại (quá trình này thường mất vài giây). Kết quả là (các) yêu cầu trang tiếp theo sẽ chậm hơn (vì không có gì sẽ được lưu vào bộ nhớ đệm nữa). Ngoài ra, trạng thái phiên của người dùng sẽ bị mất; NHƯNG trong trạng thái phiên WSS không được sử dụng theo mặc định, trong MOSS, nó được Dịch vụ biểu mẫu InfoPath sử dụng. Vì vậy, có thể là bạn không gặp vấn đề lớn liên quan đến việc mất trạng thái phiên.

Mặt khác; để khắc phục những vấn đề đó: điều thường được làm là tạo Giải pháp SharePoint (WSP) triển khai và bắt đầu Công việc hẹn giờ để thực hiện các thay đổi đối với web.config từ mã (sử dụng lớp SPWebConfigModification của Mô hình đối tượng). Điều thú vị là bạn có thể lên lịch thực hiện thay đổi, vì vậy người dùng của bạn sẽ không nhận thấy 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.