2012-11-05 16 views
5

Widzę, że Microsoft wydał Inicjowanie aplikacji w ramach IIS 8.0. Niestety nie jest domyślnie włączona w Role sieci. (przez to rozumiem, że "Inicjalizacja aplikacji" jako funkcja roli serwera WWW nie jest włączona.) Wiem, że rola sieci Web ma IIS 8.)Automatycznie instaluj Inicjowanie aplikacji w roli Azure Web Role (SDK v1.8, Windows Server 2012)

Czy ktoś wie, jak mogę to włączyć ze skryptu startowego ? Mam już kilka skryptów startowych, ale nie jestem pewien, jak dodać funkcję roli serwera.

Sam moduł pojawia się wewnątrz Menedżera serwera w "Role serwera" -> "Serwer WWW (IIS)" -> "Serwer WWW" -> "Tworzenie aplikacji" -> "Inicjalizacja aplikacji".

Szkoda, że ​​nie jest to domyślnie włączone, ponieważ będzie bardzo przydatne.

dzięki

Kris

Odpowiedz

15

Najpierw trzeba zainstalować funkcję używając zadanie startową:

PKGMGR.EXE /iu:IIS-ApplicationInit 

A potem” będziesz musiał skonfigurować swoją witrynę w IIS (startMode i preloadEnabled):

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 i można znaleźć a sample application on GitHub.

+0

Czy istnieje powód, dla którego zdecydujesz się zastąpić Run zamiast OnStart? –

+0

Klasa ServerManager można znaleźć w pliku Microsoft.Web.Administration.dll. –

0

Rola internetowej absolutnie nie IIS 8.0 zainstalowane. Jeśli zmienisz rolę sieciową na OSVersion = 3, wdroży ona Twoją aplikację do obrazu systemu Windows Server 2012 z IIS 8.0.

Jeśli masz na myśli VM (Azure IaaS)? Co mogę zrobić, to zacząć od Windows Server 2012, zdalny pulpit w, zainstalować główny serwer, jak chcesz, sysprep to, przechwytywanie obrazu. W ten sposób możesz go ponownie wykorzystać w Galerii obrazów Azure. Następnie można obracać się z tego wiele maszyn wirtualnych bazowego obrazu z IIS 8.0 już skonfigurować/zainstalować itp

+1

Mam na myśli, że moduł/funkcja "Inicjalizacja aplikacji" roli serwera WWW nie jest włączona. Tak, ma on IIS 8, po prostu nie ma włączonej inicjalizacji aplikacji. – krisdyson

+0

To, czego szukasz, można zautomatyzować za pomocą programu Package Manager: http://www.iis.net/learn/install/installing-iis-7/installing-iis-7-and-above-on-windows-server-2008 -lub-windows-server-2008-r2 lub możesz użyć PowerShell (w zadaniu uruchamiania dla swojej roli internetowej), aby dodać funkcje do serwera: http://blogs.msdn.com/b/powershell/archive/2009/ 01/27/zarządzanie-serwer-funkcje-z-powershell-cmdlety-na-windows-2008-serwer-r2-beta.aspx –

Powiązane problemy