2009-05-14 32 views
5

Tôi đã bắt đầu làm việc tại một công ty mới và dự án chính tôi làm việc (một dự án ứng dụng Web ASP.NET 3.5) mất một thời gian quá lâu để tải ban đầu (Khoảng 1,5 phút)ASP.NET 3.5 Web Application Project mất quá nhiều thời gian để tải ban đầu

Tôi biết rằng đây thường là bản chất của các dự án ứng dụng web nhưng vấn đề của tôi dường như quá dài.

Ive đã cố gắng một vài điều để thử và xác định những gì có thể gây ra chậm trễ này bao gồm Thay web.config bằng một tươi được tạo ra từ một dự án mới xóa tất cả mọi thứ từ app_start tôi trong web.config của tôi xóa tất cả các file dll weppart từ thư mục bin của tôi (để lại cho tôi 19 dll trong thư mục bin của tôi bao gồm 6 từ thư viện doanh nghiệp MS)

và vẫn phải mất rất nhiều thời gian để tải.

tôi đã tự hỏi nếu có ai có bất kỳ gợi ý như thế nào tôi có thể đi về việc tìm ra nguyên nhân khiến thời gian tải lớn như vậy hoặc của bất kỳ công cụ mà sẽ giúp tôi xem những gì ứng dụng của tôi đang làm khi nó bắt đầu

nhờ -Kris

+0

Bạn đã từng bước qua mã chưa? Có lẽ nó đang khởi tạo một cơ sở dữ liệu hoặc một cái gì đó. –

+2

Ngôn ngữ ở đây hơi mơ hồ. Khi bạn nói dự án ứng dụng Web bạn có nghĩa là tải dự án trong Visual Studio, hoặc bạn đang đề cập đến thời gian khởi động của ứng dụng trong IIS trên lần truy cập đầu tiên? –

+0

Hi Rex, im đề cập đến thời gian khởi động của ứng dụng trong IIS trên lần truy cập đầu tiên (hoặc trong trường hợp này VS được xây dựng trong máy chủ web) – Lightweight

Trả lời

2

Hãy thử một warm-up script.

JetBrains DotTrace là trình biên tập ASP.NET tuyệt vời.

+1

Cảm ơn Chris nhưng vấn đề của tôi là làm việc với dự án, tức là phát triển mã> biên dịch> xem xét các thay đổi - không thể lên lịch mỗi 5 phút – Lightweight

+1

+1 cho đề xuất DotTrace - đính kèm vào trang web và xem những gì đang diễn ra thời gian để tải. Ngoài ra hãy xem việc sử dụng bộ nhớ và sử dụng processeor - là nó w3wp đó là dùng tất cả các nguồn lực, hoặc cái gì khác? –

+0

Xin chào Chris, tôi phải bị mù, tôi không thấy dòng thứ hai đề cập đến DotTrace, cảm ơn – Lightweight

0

Có bao nhiêu dự án? Nếu bạn có nhiều cụm và dll trong thư mục bin, điều đó có thể làm chậm thời gian tải đáng kể (ngay cả khi chúng khá nhỏ). Đó là điều tốt nhất tôi có thể đề xuất.

+0

Có 8 dự án khác mà dường như không tệ với tôi. có rất nhiều phần dlls web, đó là lý do tại sao tôi đã thử xóa tất cả và thử nghiệm thời gian tải sau đó nhưng vẫn không có niềm vui: ( – Lightweight

0

Thử sử dụng SQL Profiler và xem hoạt động cơ sở dữ liệu được liên kết khi khởi động.

Rất có thể, có rất nhiều truy vấn đánh vào cơ sở dữ liệu ở chế độ xem trang đầu tiên để khởi tạo các bộ đệm khác nhau.

Nếu đúng như vậy, bạn có thể tập trung nỗ lực vào việc tối ưu hóa các truy vấn đang gây ra nhiều sự chặn nhất.

3

Có một bản ghi khác trong .NET 2.0 trở đi. Nếu bạn có bất kỳ tập hợp đã ký nào trong thư mục bin, CLR sẽ thử kết nối với một URL VeriSign và lấy danh sách thu hồi các chứng chỉ để xem chúng có hợp lệ hay không.

Điều này cũng có thể ăn một số thời gian khởi động của bạn. Nếu bạn nghĩ rằng điều này có thể góp phần vào vấn đề của bạn thì bạn có thể có một cái nhìn tại sau để MS bài viết:

http://digital.ni.com/public.nsf/allkb/18E25101F0839C6286256F960061B282 
http://support.microsoft.com/kb/936707 

Để đối phó với điều này trên một cơ sở cho mỗi ứng dụng mà bạn có thể thêm các cài đặt sau dưới phần cấu hình trong app.config/web.config của bạn.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <runtime> 
     <generatePublisherEvidence enabled="false" /> 
    </runtime> 
</configuration> 

Tất nhiên, nếu bạn thêm cài đặt này, các DLL đã ký sẽ không được xác minh cho giá trị của chúng nữa!

+0

Nếu đây là vấn đề chủ yếu trong phát triển, bạn có thể tắt nó trong khi phát triển, và có nó được bật trong ứng dụng trực tiếp. – awe

0

Trình thu thập thông tin ANTS của RedGate có thể cung cấp cho bạn một số gợi ý về những gì có thể làm chậm bạn xuống.

Đặt điểm ngắt trên Page_Load trong Default.aspx.cs và bắt đầu.

Kiểm tra tệp Global.asax để xem liệu có bất kỳ thứ gì đang được tải mà bạn không biết.

Các dự án khác có tải nhanh không? Bạn có các chương trình khác đang chạy có thể làm chậm máy của bạn không? Như bạn đề cập, ứng dụng .NET mất nhiều thời gian nhất trên tải ban đầu ... bạn có nhiều tham chiếu (thư viện bên ngoài, dll ... etc ...)

Nếu bạn chuyển sang máy chủ dàn dựng hoặc máy chủ dev , nó có tải nhanh không?

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