2009-03-11 11 views
7

Dịch vụ CruiseControl.NET cần được khởi động lại để nhận các thay đổi trong các tệp cấu hình .Tại sao CruiseControl.NET cần được khởi động lại sau GetCcNetConfigFiles?

Tôi thấy điều này rất khó chịu, không chắc chắn nếu đó là lỗi hoặc đó là cách hoạt động của nó.

Có cách nào để khắc phục vấn đề này trong trải nghiệm của mọi người không?

+0

Bạn đang nói về tệp ccservice.exe.config (cấu hình của se rvice) hoặc ccnet.config (cấu hình của dự án). Những thay đổi sau này được tự động chọn (đối với tôi). – M4N

+0

Tôi đang nói về những thay đổi trong tệp cấu hình của dự án (chỉ đến một nhánh khác v.v ...) – JohnIdol

Trả lời

10

Nếu dự án của bạn được tách ra trong một tập tin khác nhau từ ccnet.config, sau đó bạn cần để khởi động lại dịch vụ trừ khi bạn chạm vào ccnet.config thực tế

Chúng tôi sử dụng ENTITY với tham chiếu tệp SYSTEM trong ccnet.config cho các dự án của chúng tôi, vì vậy chúng tôi đang ở cùng một chiếc thuyền. bảo trì dự án dễ dàng hơn, vì thật dễ dàng để khởi động lại tập lệnh:

net stop CCService 
net start CCService 
IISRESET 

Nếu bạn muốn hoàn toàn tự động hóa điều này và đã có dự án của bạn dưới sự kiểm soát nguồn, thì bạn có thể kích hoạt cập nhật và khởi động lại bất cứ khi nào các tệp dự án của bạn được chạm vào.

+0

có chúng nằm trong các tệp riêng biệt - tệp cấu hình lớn không thể nhận biết được khi bạn tải các dự án trên CC. Vì vậy, bạn có thể xác nhận đây là cách duy nhất? – JohnIdol

+0

Tôi e là vậy, CCNET chỉ có thể biết về tệp cấu hình hiện tại của nó, AFAIK .NET không thể xác định các thay đổi đối với tệp cấu hình được tham chiếu qua HỆ THỐNG. Đã có một thay đổi gần đây: http://confluence.public.thoughtworks.org/display/CCNET/Configuration+Preprocessor nhưng tôi không chắc chắn có giúp ích gì không? – si618

1

Tôi chưa bao giờ trải nghiệm điều này. Bất cứ khi nào tôi thay đổi các tập tin cấu hình, dịch vụ CruiseControl.NET dường như tự động đọc lại chúng.

Tôi đang sử dụng Phiên bản 1.3 của CC.NET.

Cập nhật:

Trong tập tin cấu hình của dịch vụ (ccservice.exe.config), có một thiết lập để bật/tắt xem file ccnet.config cho những thay đổi:

<add key="WatchConfigFile" value="true"/> 

Make chắc chắn điều này được đặt thành true.

+0

Tôi đang sử dụng 1.4.2 (trên winXP SP2) và tôi có thể xác nhận Điều đó đang xảy ra với tôi (điều đó cũng xảy ra với 1.3) – JohnIdol

+0

cảm ơn đề xuất của bạn - Tôi đã kiểm tra nhưng WatchConfigFile đã được đặt thành true – JohnIdol

2

Bạn đang cập nhật tệp cấu hình của mình như thế nào? Bằng tay? Mỏ luôn luôn nhận ra và điều chỉnh. Là tập tin cấu hình của bạn trong kiểm soát nguồn và được thiết kế để kéo nó xuống và thay thế các tập tin? Điều này cho tôi đòi hỏi một cú đá. Làm thế nào tôi đã kết thúc sửa chữa nó đã được dự án của tôi kéo nó xuống một thư mục riêng biệt. Tôi gọi ccnet.exe -validate trên nó để chắc chắn rằng nó được tạo thành tốt, sau đó tôi sao chép nó trên ontop của tập tin cấu hình hiện tại. CC.NET nhận ra các thay đổi và tải trong cấu hình mới

Ngoại lệ: Nếu cc.net hiện đang chạy một dự án, nó sẽ không nhận ra những thay đổi cho đến khi dự án đó hoàn thành.

Nếu ccnet.config của bạn có lỗi, nó sẽ không bao giờ nhận ra các thay đổi và tiếp tục chạy phiên bản cũ mà nó đã lưu trong bộ nhớ. (Tuy nhiên khi CC.NET không khởi động lại nó sẽ cố gắng để phân tích các lỗi điền config và nghẹt thở.

Hope this helps !!

2

Bạn có nghĩa là bạn đang sử dụng các tệp được liên kết, đó là tệp ccnet.config có liên kết đến các tệp dự án độc lập.

Nếu vậy thì chúng không được chọn, nó được đề cập trong tài liệu hướng dẫn rằng nó không xem các tệp phụ.

Nội bộ chúng tôi đã sửa đổi CruiseControl.net của chúng tôi để ccnet.config của chúng tôi là tùy chọn một thư mục - và chúng tôi có thể thả các lối tắt đến tệp cấu hình dự án của chúng tôi vào thư mục đó. Chúng tôi đặt đồng hồ vào thư mục, tệp hoặc lối tắt trong thư mục và tất cả các mục tiêu của phím tắt.Điều đó có nghĩa là chúng tôi có các tệp cấu hình dự án của chúng tôi trong ClearCase và chỉ cần thả một lối tắt vào thư mục ccnet.config.

Tôi đã dành nửa ngày hoặc lâu hơn để chuyển từ 1,2 đến 1,4,2 thay đổi các thay đổi của chúng tôi sang phiên bản mới để sử dụng nội bộ của chúng tôi. Chúng tôi không sở hữu mã của chúng tôi, khách hàng của chúng tôi thực hiện và do đó phải duy trì nội bộ: (

+0

bạn có thể phác thảo cách bạn đã thực hiện mà không đưa ra triển khai không? – JohnIdol

+0

Tôi sẽ sắp xếp thứ gì đó ra - đó là một cách thực hiện gọn gàng và tôi nghĩ rằng nó nên được đưa trở lại vào việc xây dựng công cộng như một chút trả lại. –

5

Có lỗi trong CC.Net trước 1.4.4 nếu bạn sử dụng bộ xử lý trước bao gồm nó không tải lại cấu hình khi một tập tin ccnet.config bao gồm đã được sửa đổi.

đó là một lỗi mà tôi đã báo cáo và nó được cố định trong CC.Net 1.4.4 và lớn hơn.

Ngoài ra, hãy nhớ rằng nếu một xây dựng đang chạy và có thay đổi đối với cấu hình nó sẽ không diễn ra cho đến khi bản dựng đó ở trạng thái chờ.

+0

"Ngoài ra, hãy nhớ rằng nếu một phiên bản đang chạy và có thay đổi đối với cấu hình, nó sẽ không diễn ra cho đến khi bản dựng đó ở trạng thái không hoạt động." là chìa khóa cho tôi - cảm ơn! –