Đang tải.....
THE GIOI VI TINH - PC WORLD VIETNAM
 TRANG CHỦ
THĂM DÒ


TGVT - Công nghệ Máy tính và Mạng
 

Lỗi tương thích ứng dụng với Windows 7 (Phần 2)

ID: A1001_95
Thực hiện: Đỗ Hoàng An
       
71




Tiếp sau bài viết “Kiểm tra tính tương thích ứng dụng với Windows 7”, ID:A0912_132, chúng ta sẽ tìm hiểu thêm về những lỗi tương thích.

Trước Windows Vista, rất nhiều ứng dụng thường được thực thi với quyền Administrator (quản trị, có toàn quyền trên hệ thống) và có thể tự do đọc/ghi các file hệ thống và registry. Nếu dùng tài khoản Standard User (người dùng thông thường), những ứng dụng đó sẽ không thể truy cập các file hệ thống, registry và thất bại trong việc thực thi.

Window Vista và Windows 7 đã cải thiện khả năng tương thích của ứng dụng cho Standard User bằng cách chuyển hướng ghi (file và registry) tới các khu vực dành riêng cho từng người dùng.

Ví dụ: nếu ứng dụng cố gắng ghi vào file C:\Program Files\Contoso\Settings.ini, và người sử dụng không có quyền ghi vào thư mục này, việc ghi sẽ được chuyển hướng sang C:\Users\\AppData\Local\VirtualStore\Program Files\contoso\settings.ini. Đối với Registry, nếu ứng dụng cố gắng ghi vào HKEY_LOCAL_MACHINE\Software\Contoso\, nó sẽ được tự động chuyển hướng sang HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\Software\Contoso hay HKEY_USERS\_Classes\VirtualStore\Machine\Software\Contoso.

Hình sau mô tả chi tiết tiến trình ảo hóa trong Windows 7 phục vụ cho việc chuyển hướng trên.

Việc ảo hóa bao gồm 2 thành phần:

• Ảo hoá file

• Ảo hóa registry

Ảo hóa file

Trong khu vực hệ thống, thông thường chỉ Administrator có quyền ghi file, ứng dụng chạy với quyền của Standard User trong tình huống này có thể không đủ quyền truy cập. Khi ứng dụng muốn ghi file trong khu vực hệ thống, nơi mà chỉ Administrator có quyền ghi, Windows khi đó sẽ chuyển hướng ghi file ở khu vực riêng của người dùng nằm trong thư mục ảo (Virtual Store), tại %LOCALAPPDATA%\VirtualStore. Sau đó khi ứng dụng muốn lấy lại nội dung của file này thì hệ thống sẽ cung cấp file nằm trong Virtual Store. Vì các thành phần bảo mật của Windows xử lý việc ảo hóa mà không cần sự giúp đỡ của ứng dụng, ứng dụng vẫn tin rằng nó có thể đọc và ghi file bình thường.

Ảo hóa Registry

Việc ảo hóa registry tương tự như ảo hóa file, chỉ khác ở chỗ được áp dụng cho những khóa con của khóa HKEY_LOCAL_MACHINE\SOFTWARE. Tính năng này cho phép ứng dụng cần lưu giữ các thông tin cấu hình trong HKEY_LOCAL_MACHINE\SOFTWARE có thể hoạt động bình thường khi chạy với quyền Standard User. Khóa và dữ liệu đươc chuyển hướng đến HKEY_CLASSES_ROOT\VirtualStore\SOFTWARE. Cũng như trong trường hợp ảo hóa File, mỗi user đều có một bản sao ảo bất kỳ giá trị nào mà ứng dụng lưu trữ trong HKLM.

Các biểu hiện lỗi

1. Không thể tìm thấy file hoặc folder đã tạo

Khi sử dụng ứng dụng trong chế độ ảo hóa sẵn sàng, bạn tạo file dữ liệu trong khu vực ảo của hệ thống. Khi sử dụng một ứng dụng khác hoặc Windows Explorer để truy cập những file mới vừa tạo, bạn không thể tìm thấy chúng. Ví dụ: Nếu bạn lưu file trong ứng dụng chỉnh sửa ảnh vào thư mục %program files%, %systemroot%, hoặc %program data%, bạn không thể tìm thấy file vừa lưu.

2. Sau khi nâng cấp ứng dụng hoạt động bất thường

Sau khi bạn nâng cấp một ứng dụng và nhận được thông báo lỗi như sau “Error. Please upgrade your application”. Thêm vào đó, ứng dụng hoạt động không như mong muốn. Ứng dụng dường như sử dụng dữ liệu sai hoặc dữ liệu chưa nâng cấp. Do bị ảo hóa nên các file cập nhập bị chuyển hướng ghi đến khu vực khác do đó các file trong thư mục cài đặt không được cập nhập phiên bản mới.

3. Sau khi gỡ bỏ ứng dụng, các file của ứng dụng vẫn tồn tại trong máy

•Trong một ứng dụng khác, bạn chú ý rằng thông tin file và folder cho ứng dụng đã bị gỡ bỏ vẫn còn tồn tại trong thư mục %program files%, %program data%, hoặc %systemroot%.

• Thư mục %userprofile%\AppData\Local\VirtualStore có kích thước lớn hơn so vơi ước lượng của bạn. Khi bạn gỡ bỏ ứng dụng, những file ảo được tạo ra trong quá trình làm việc của ứng dụng đã không được gỡ đi.

Giải pháp

Ảo hóa file và registry chỉ nhằm hỗ trợ cho việc tương thích ứng dụng đối với những chương trình đã tồn tại. Việc ảo hóa này sẽ bị loại bỏ trong các phiên bản Windows tương lai, ví dụ chế độ này không tồn tại trong phiên bản 64 bit. Vì vậy lập trình viên cần chú ý thiết kế lại ứng dụng sao cho có thể hoạt động tốt trong Windows 7 mà không cần chế độ ảo hóa trên. Ứng dụng được thiết kế cho Windows 7 không nên thực hiện hành động ghi dữ liệu lên các khu vực nhạy cảm của hệ thống cũng như không nên trông mong vào việc ảo hóa để sửa chữa những hành vi không tương thích của ứng dụng. Khi cập nhập lại mã nguồn để hoạt động trên Windows 7, Lập trình viên cần chắc chắn rằng trong suốt quá trình chạy ứng dụng chỉ ghi dữ liệu vào khu vực riêng của từng người dùng hoặc trong khu vực %alluserprofile% (CSIDL_COMMON_APPDATA) được thiết lập ALC (access control list).

Lập trình viên khi phát triển ứng dụng cần chú ý các điểm sau:

• Tạo và nhúng file manifest vào ứng dụng với mức requestedExecutionLevel phù hợp cho việc tương tác trong ứng dụng. Chế độ ảo hóa sẽ bị tắt đối với ứng dụng nhúng manifest.

• Không sử dụng registry làm phương tiện giao tiếp trao đổi thông tin giữa các tiến trình.

• Kiểm thử ứng dụng trong Windows 7 đảm bảo tiến trình thực thi ứng dụng với Standard User không ghi dữ liệu vào không gian tên toàn cục như %systemroot%.

Đỗ Hoàng An
Email: andh2007@hotmail.com
-----------------------------------------------
Tài liệu tham khảo:
Common file and registry virtualization issues in Windows Vista or in Windows 7, http://support.microsoft.com/kb/-927387 (http://tiny.cc/zb9yY)

   Từ khóa: Windows 7
    URL bài viết        
    Facebook Facebook        Twitter Twitter        Myspace Myspace        Digg Digg        del.icio.us del.icio.us
   Ý kiến
    Họ và tên:          Email:  
    Nội dung (câu hỏi hay ý kiến không liên quan đến bài viết vui lòng gửi ở trang Cộng đồng)

Bài liên quan:
    Kiểm tra tính tương thích ứng dụng với Windows 7 (TGVT A  12/2009, tr.132)
Các bài viết khác:
    SSL VPN - Bảo mật truy cập nội bộ từ xa (TGVT A  1/2010, tr.92)
    Tối ưu hoá với MDOP 2009 (TGVT A  12/2009, tr.131)
    Chương trình chống virus miễn phí có đủ sức bảo vệ? (TGVT A  12/2009, tr.125)
    Quảng bá kinh doanh qua video trực tuyến (TGVT A  11/2009, tr.104)
    Windows 7 với doanh nghiệp vừa và nhỏ (TGVT A  11/2009, tr.103)
    Tự tạo bộ cài đặt chuyên nghiệp (TGVT A  11/2009, tr.102)
    Quản lý kết nối và tính phí truy cập Wi-Fi (TGVT A  11/2009, tr.100)
    Các chiến lược sao lưu dữ liệu (TGVT A  11/2009, tr.93)
    Cài đặt liên cung SQL Server 2005 (TGVT A  10/2009, tr.127)
    Tận dụng triệt để HDTV (TGVT A  10/2009, tr.121)

Ấn phẩm:  Số:  

Được đọc nhiều nhất
 Tiện ích miễn phí giúp nâng cấp Windows 7 Home lên Windows 7 Pro
 Tự tạo bộ cài đặt chuyên nghiệp
 Quản lý kết nối và tính phí truy cập Wi-Fi
 Các chiến lược sao lưu dữ liệu
 Chương trình chống virus miễn phí có đủ sức bảo vệ?
 Windows 7 với doanh nghiệp vừa và nhỏ
 Quảng bá kinh doanh qua video trực tuyến
 Kiểm tra tính tương thích ứng dụng với Windows 7
 Tối ưu hoá với MDOP 2009
 Các nhãn đánh giá nội dung ESRB & Định nghĩa
Quảng cáo
Dành cho quảng cáo
THUẬT NGỮ CÔNG NGHỆ
Tra từ :