2009-07-20 24 views
6

Tôi có một ứng dụng WinForms 2.0 với khoảng 18 Báo cáo được tạo bằng Microsoft ReportViewer. Mỗi lần báo cáo được bắt đầu, có một assembly động được tạo (expression_host_xxxxxx.dll). Cấu hình động này được nạp vào bộ nhớ và ở lại phần còn lại của tài nguyên tiêu thụ thời gian chạy ứng dụng. Ngay cả khi chúng tôi chỉ có 1 báo cáo và chúng tôi bắt đầu tức là 3 lần, chúng tôi nhận được 3 cụm từ expression_host như vậy trong bộ nhớ.Tổ hợp Expression_Host tiếp tục tăng số lượng

Có cách nào để ngăn không cho các hội đồng này được tạo ra hoặc dỡ bỏ các hội đồng này sau khi chúng tôi đã hoàn thành không?

TIA

Trả lời

4

Tôi đã tìm được giải pháp. Trên điều khiển ReportViewer bạn có thể biểu thị để thực hiện báo cáo trong một cái gọi là sandbox app-miền:

`rpv1.LocalReport.ExecuteReportInSandboxAppDomain();` 

này sẽ không ngăn cản việc tạo ra các hội đồng Expression_Host bởi vì đây là cần thiết để đánh giá biểu thức mà bạn đã sử dụng trong báo cáo của bạn. Tuy nhiên nó sẽ bắt đầu báo cáo trong một miền ứng dụng mới. Tên miền ứng dụng mới này sau đó được dỡ bỏ sau khi báo cáo kết thúc và kết quả là, bất kỳ assembly được nạp nào trong miền đó cũng sẽ được nạp.

+0

Điều này đã trở lại với một thông điệp không được chấp nhận, bất kỳ ý tưởng nào khác? – Neo

Các vấn đề liên quan