2012-11-05 32 views
5

Tôi thấy Microsoft đã phát hành Khởi tạo Ứng dụng như một phần của IIS 8.0. Thật không may là nó không được kích hoạt trong Web Role theo mặc định. (bằng cách đó tôi có nghĩa là, "Khởi tạo ứng dụng" như là một tính năng của vai trò máy chủ web không được kích hoạt. Tôi biết vai trò Web có IIS 8.)Tự động cài đặt Ứng dụng Khởi tạo trong Vai trò Web Azure (SDK v1.8, Windows Server 2012)

Có ai biết làm thế nào tôi có thể kích hoạt nó từ một kịch bản khởi động ? Tôi đã có một số tập lệnh khởi động, nhưng tôi không chắc chắn cách thêm tính năng vai trò máy chủ.

Bản thân mô-đun xuất hiện bên trong Trình quản lý máy chủ trong "Vai trò máy chủ" -> "Máy chủ Web (IIS)" -> "Máy chủ web" -> "Phát triển ứng dụng" -> "Khởi tạo ứng dụng".

Thật đáng tiếc là điều này không được bật theo mặc định vì nó sẽ rất hữu ích.

nhờ

Kris

Trả lời

15

Trước tiên, bạn sẽ cần phải cài đặt các tính năng sử dụng một nhiệm vụ khởi động:

PKGMGR.EXE /iu:IIS-ApplicationInit 

Và sau đó bạn' sẽ cần phải cấu hình trang web của bạn trong IIS (startModepreloadEnabled):

public class WebRole : RoleEntryPoint 
{ 
    public override void Run() 
    { 
     using (var serverManager = new ServerManager()) 
     { 
      var mainSite = serverManager.Sites[RoleEnvironment.CurrentRoleInstance.Id + "_Web"]; 
      var mainApplication = mainSite.Applications["/"]; 
      mainApplication["preloadEnabled"] = true; 

      var mainApplicationPool = serverManager.ApplicationPools[mainApplication.ApplicationPoolName]; 
      mainApplicationPool["startMode"] = "AlwaysRunning"; 

      serverManager.CommitChanges(); 
     } 

     base.Run(); 
    } 

    public override bool OnStart() 
    { 
     // For information on handling configuration changes 
     // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. 

     return base.OnStart(); 
    } 
} 

I wrote a blog post about this và bạn có thể tìm a sample application on GitHub.

+0

Có lý do nào mà bạn chọn ghi đè Chạy thay vì Khởi động không? –

+0

Lớp ServerManager có thể được tìm thấy từ hội đồng Microsoft.Web.Administration.dll. –

0

Vai trò web hoàn toàn đã IIS 8.0 được cài đặt. Bạn thay đổi vai trò web thành OSVersion = 3, nó sẽ triển khai ứng dụng của bạn lên hình ảnh Windows Server 2012 với IIS 8.0.

Nếu bạn có nghĩa là VM (Azure IaaS)? Những gì tôi sẽ làm là bắt đầu từ Windows Server 2012, máy tính để bàn từ xa trong, cài đặt máy chủ lõi như bạn muốn, sysprep nó, chụp hình ảnh. Bằng cách này bạn có nó để tái sử dụng trong bộ sưu tập hình ảnh Azure của bạn. Sau đó, bạn có thể quay lên nhiều máy ảo từ hình ảnh cơ sở này với IIS 8.0 đã được thiết lập/cài đặt, vv

+1

Tôi có nghĩa là mô-đun "Khởi tạo ứng dụng"/tính năng của vai trò Máy chủ web không được bật. Vì vậy, có, nó có IIS 8, chỉ cần không có khởi tạo ứng dụng được kích hoạt. – krisdyson

+0

Những gì bạn đang tìm kiếm có thể được tự động bằng cách sử dụng Trình quản lý gói: http://www.iis.net/learn/install/installing-iis-7/installing-iis-7-and-above-on-windows-server-2008 -hoặc-windows-server-2008-r2 hoặc bạn có thể sử dụng PowerShell (trong nhiệm vụ khởi động cho vai trò web của bạn) để thêm các tính năng vào máy chủ: http://blogs.msdn.com/b/powershell/archive/2009/ 01/27/quản lý-máy chủ-tính năng-với-powershell-cmdlets-on-windows-2008-server-r2-beta.aspx –

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