Xin chào mọi người, hiện tại mình đang làm một windows service chạy ngầm sẽ định kỳ đếm số lượt view trong CSDL.
Và mình tạo một Winform để người dùng thay đổi và lưu những thông số kết nối CSDL vào registry. Sau đó sẽ restart service để load những thông số kết nối mới.
Nhưng bây giờ mình gặp một vấn đề là service không đọc được những gì winform ghi vào. Lúc đầu mình cũng nghĩ do code lỗi. Mình test lại cho service ghi mặc định những thông số và đọc ra lại từ registry thì vẫn đúng hoàn toàn. Bên Winform cũng như vậy.
Mình phát hiện ra vấn đề là Windows Service và Winform cùng có thể ghi và đọc dữ liệu registry nhưng chỉ do chính nó ghi thì mới có thể đọc được, service ghi thì chỉ có service đọc ra mới đúng, winform ghi thì winform đọc ra mới đúng.
VD: Service ghi key "key" value là "A", sau đó Winform ghi key "key" giá trị là "B". Start lại service thì service vẫn đọc ra là "A", Winform vẫn đọc ra là "B".
Cứ như máy mình có 2 registry cho winform và win service vậy.
Đây là project của mình, mong mọi người xem dùm và chỉ ra giúp mình tại sao lại bị như vậy.
Bây giờ mình nghĩ rằng có lẽ có Win của mình bị vấn đề, vì mình đã test trên máy khác thì nó vẫn chạy đúng. Có ai đã gặp trường hợp như mình thì chỉ mình cách giải quyết với.
Cám ơn rất nhiều.