2012-12-17 32 views
15

Chúng tôi có trang web của chúng tôi chạy trên hai máy với iis 7.5 Một hoạt động tốt.Yêu cầu ứng dụng web IIS 7.5 đầu tiên sau khi tái chế hồ bơi ứng dụng rất chậm

Cách khác mất bao lâu để xử lý yêu cầu đầu tiên sau khi tái chế nhóm ứng dụng. Nó có thể mất đến 60 giây mà không thể chấp nhận được vì nó sẽ được sử dụng làm máy chủ sản xuất của chúng tôi.

Tôi đã kiểm tra cài đặt nhóm ứng dụng trên cả hai máy chủ và chúng giống nhau và phiên bản webapp trên cả hai máy chủ giống nhau. Tôi đã chạy trình quản lý tác vụ và màn hình tài nguyên, thêm xem kết nối với máy khi tôi thực hiện yêu cầu nhưng không có gì khác xảy ra, iis thậm chí không hiển thị yêu cầu trong nhật ký cho đến khi hoàn thành. Tôi thực sự không biết nó làm gì trong thời gian đó.

Có bất kỳ dấu vết nào của cài đặt mà chúng tôi có thể thử để khắc phục sự cố này hoặc tìm ra sự cố. Rất khó hiểu.

EDIT: Vì vậy, tôi đã có một số thông tin bây giờ, finall bị các nhật ký yêu cầu không hoạt động (đã phải từ bỏ người dùng IIS_IUSRS quyền) nhưng tôi đã có một số bản ghi để xem những gì đang diễn ra

Thời gian bị mất là inbetween hai giây trong tệp nhật ký.

1. MODULE_PRECONDITION_NOT_MATCH Name="ScriptModule-4.0", Precondition="managedHandler,runtimeVersionv4.0"   12:09:46.422 
2. VIRTUAL_MODULE_UNRESOLVED  Name="FormsAuthentication", Type="System.Web.Security.FormsAuthenticationModule"  12:12:04.390 

Như bạn có thể thấy phải mất hơn 2 phút giữa hai sự kiện đó, bất kỳ ai đã từng gặp điều này trước đây?

+0

Dữ liệu có phải là các cá thể đang sử dụng cùng không? –

+0

@Thomas. Có, các trang web tại thời điểm này trỏ đến cùng một cơ sở dữ liệu. – MrJoeBlow

+0

Web.config giống nhau không? – Aristos

Trả lời

19

Đây là hơi khó để nói whats going on trên máy chủ khác của bạn, tuy nhiên đây là một danh sách kiểm tra đơn giản, bạn có thể muốn xem xét lại:

  • Luôn pre-biên dịch trang web của bạn, như trái ngược với việc sao chép nó! bạn có thể đạt được một hiệu suất tăng đáng kể biên dịch trang web của bạn trước khi triển khai: ASP.NET Precompilation Overview

  • Đừng chạy các ứng dụng sản xuất với debug="true" kích hoạt, khi debug cờ là đúng trong web.config của bạn, bộ nhớ lớn hơn được sử dụng trong các ứng dụng tại thời gian chạy, và từ một số đường dẫn debug thêm được kích hoạt, mã có thể thực hiện chậm hơn nhiều

  • Kiểm tra file Web.config của bạn để đảm bảo dấu vết bị vô hiệu hóa trong phần <trace>

  • IIS 7.5 đi kèm với các Auto-Start Feature. WS (Windows Process Activation Service) bắt đầu tất cả các hồ bơi ứng dụng được cấu hình để khởi động, đảm bảo rằng hồ bơi ứng dụng của bạn được cấu hình để AlwaysRunning trong IIS 7.5 applicationHost.config, check out here để xem chi tiết hơn

  • Kiểm tra các tập tin ASPNET.CONFIG để xem nếu cấu hình trên cả hai máy chủ vẫn như cũ. Mỗi máy chủ asp.net có thể được cấu hình tốt bởi tệp aspnet.config nằm trong thư mục gốc của thư mục khung

  • Đảm bảo rằng bằng chứng nhà xuất bản cho bảo mật truy cập mã (CAS) được đặt thành false trong tệp aspnet.config của bạn, điều này có thể tăng tải trang ban đầu khi bạn khởi động lại nhóm ứng dụng ASP.NET. bạn có thể đọc more about it here.

Dưới đây là làm thế nào để vô hiệu hóa việc kiểm tra đối với chính sách xuất bản CAS cho một ứng dụng:

<configuration> 
    <runtime> 
     <generatePublisherEvidence enabled="false"/> 
    </runtime> 
</configuration> 
  • cũng có thể bạn có thể muốn thử Application Initialization Module for IIS 7.5, module này cũng có sẵn trên IIS 8.0 có thể làm giảm thời gian phản ứng cho yêu cầu đầu tiên bằng cách tải trước quy trình công nhân
+0

Cảm ơn. Tôi sẽ đi qua danh sách này và hy vọng một cái gì đó sẽ đến từ nó. Tôi sẽ trả lời sau khi hoàn thành. – MrJoeBlow

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