Thay thế cho nhóm ứng dụng startMode = Luôn luôn


8

Nếu một ứng dụng web được gọi là chính nó sẽ được thiết lập với nhóm ứng dụng của nó sẽ được định cấu hình trong applicationhost.config là:

<add name="AppPool" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />

Liệu kết quả tương tự có thể đạt được bằng cách chỉ yêu cầu một trang từ máy chủ mỗi phút? Hay việc thiết lập startMode cho giá trị này cũng có ý nghĩa khác?

Câu trả lời:


6

Nó có vẻ giống nhau. Dường như, vì Microsoft thấy các nhà phát triển phải làm điều này, họ đã tạo ra tính năng mới này để tự động xử lý việc này.

[Nhà phát triển] sau đó hoặc nghĩ ra các tập lệnh tùy chỉnh để gửi các yêu cầu giả đến ứng dụng để định kỳ, đánh thức nó dậy và thực thi mã này trước khi khách hàng đánh vào nó, hoặc đơn giản là khiến khách hàng đầu tiên không may truy cập ứng dụng để chờ trong khi logic này kết thúc trước xử lý yêu cầu (có thể dẫn đến sự chậm trễ lâu dài cho họ).

ASP.NET 4 xuất xưởng với một tính năng mới gọi là Tự động khởi động, giúp giải quyết tốt hơn tình huống này và có sẵn khi ASP.NET 4 chạy trên IIS 7.5 (đi kèm với Windows 7 và Windows Server 2008 R2). Tính năng tự động khởi động cung cấp một cách tiếp cận có kiểm soát để bắt đầu quy trình nhân viên ứng dụng, khởi tạo ứng dụng ASP.NET và sau đó chấp nhận các yêu cầu HTTP.

Từ các ứng dụng ASP.NET tự khởi động của Scott Guthrie (Dòng VS 2010 và .NET 4.0) .

Vì vậy, trừ khi bạn không sử dụng IIS 7.5, tôi muốn nói chỉ sử dụng chức năng tích hợp.

(Và cảm ơn; Tôi không biết về tính năng này, nhưng chắc chắn có thể nghĩ về các trang web mà tôi phát triển để có thể sử dụng nó.)


6
Thật đáng xấu hổ khi họ tạo ra tính năng này ở cấp applicationhost.config. Nó nên được thay thế ở cấp web.config.
Chris Marisic

4

IIS 7.5 bao gồm một cờ bổ sung ở cấp Trang web hoặc Ứng dụng được gọi preloadEnabled. Đặt điều này thành đúng sẽ tạo một yêu cầu giả mạo để làm nóng trang web. Nó phải được sử dụng trong kết hợp với autoStart.

tự động bắt đầu

<add name="{yourapppoolname}" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" startMode="AlwaysRunning" />

tải trước

<site name="YOURSITENAMEHERE" id="4″>
  <application path="/" applicationPool="YOURAPPPOOL" preloadEnabled="true">
  <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\YOURSITENAME" />
  </application>
</site>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.