2009-09-02 25 views
5

Tôi đang làm việc trên một dự án MVC và hiệu suất hoạt động tốt.Global.asax Application_start được kích hoạt trên mọi hành động

Khi application_start cơ sở dữ liệu được lập chỉ mục cho tìm kiếm lucene.net (và trên mọi thay đổi về một đối tượng, chỉ mục được mở rộng). Nhưng application_start chạy trên mọi hành động tôi gọi trên trang.

Tại sao ứng dụng kích hoạt application_start không chỉ một lần? Tôi sẽ đăng bất kỳ mã khi tôi biết được nơi để tìm kiếm;)

Tôi không chắc chắn nếu web.config có thể gây ra hành vi này ...

Giải pháp: Lucene.net viết chỉ số của nó vào thùng thư mục, sau khi thay đổi đường dẫn ứng dụng không làm tan khuôn mặt của tôi nữa :)

Trả lời

8

Có thể là do Lucene xây dựng chỉ mục của nó, nó sửa đổi một số tệp (web.config, global.asax, bin folder, v.v. .) Điều đó sẽ khiến cho AppDomain bị xóa.

+0

Trong web.config không có gì về lucene, nhưng trong thư mục bin có một thư mục có tên _indexes ... có lẽ đây là từ lucene? Người thiết lập lucene đã biến mất (lập trình viên bên ngoài) và không có sẵn trong hai tuần tới. – griti

+1

Nếu thư mục bin được sửa đổi, ứng dụng sẽ khởi động lại. Bạn cần phải cấu hình lại Lucene để lưu trữ chỉ mục của nó ở nơi khác. –

+0

yep, phát hiện ra nơi lucene được cấu hình. cảm ơn! – griti

1

Rất có thể web.config được sửa đổi bằng cách nào đó.
Để theo dõi nó, hãy thử đặt thuộc tính Chỉ đọc của web.config và xem có lỗi nào không.

Thực sự là nơi chính để xem xét là web.config, cũng có thể trong thư mục lưu trữ.

+0

sau khi ứng dụng bắt đầu tôi đặt web.config và thư mục bin + thư mục con thành chỉ đọc và vẫn application_start được gọi là :( – griti

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