2016-01-06 2 views
4

J'essaie de démarrer automatiquement mon application ASP.NET à chaque fois que le pool d'applications est en cours d'exécution.Comment faire pour démarrer correctement une application asp.net dans IIS10

Comme par lots et beaucoup de références en ligne, je l'ai déjà fait ce qui suit:

  • Réglez le pool d'applications à StartMode=AlwaysRunning
  • Mettre le site en question (qui appartient à mentionné précédemment Pool) à preloadEnabled=true
  • Installez la fonction Application Initialization à l'installation de Windows
  • Ajouter le noeud <applicationInitialization>-<system.webServer> noeud du web.config

L'application Web est basée sur Owin et possède une simple instruction de consignation log4net dans sa méthode Startup.Configuration(). Maintenant, lorsque vous redémarrez IIS, je vois que le processus w3svc.exe est en cours d'exécution, donc je sais que le StartMode=AlwaysRunning fonctionne. Il n'y a cependant pas de messages de journalisation dans le fichier journal.

Naviguer vers n'importe quelle URL (même inexistante) dans l'application lancera l'application et ajoutera la ligne de journal.

En raison du travail réel effectué au démarrage de l'application, je souhaite vraiment que l'application soit réellement préchargée, mais il semble que je ne puisse pas le faire.

Recherche sur ce site Je n'ai malheureusement pas trouvé de solution.

Merci d'avance.

+0

Avez-vous installé la fonctionnalité de serveur Web | Application Development | Application Initialization? Voir http: //www.iis.net/learn/get-started/quoi-new-in-iis-8/iis-80-initialisation-d'application # TOC301259895 –

+0

En fait, et même si je ne sais pas ce qui a changé, ça marche maintenant. Je pense que j'ai juste manqué un redémarrage requis ou quelque chose. – Robba

Répondre

9

Pour répondre à ma propre question pour les générations futures, il semble que j'étais sur la bonne voie. Pour obtenir l'application à démarrer dans IIS10 (et je suppose que dans IIS 8 aussi bien) vous avez seulement besoin les trois étapes suivantes:

  1. Définir l'application Piscine à StartMode=AlwaysRunning pour vous assurer que le processus de w3svc.exe est toujours en cours d'exécution pour l'App Pool.
  2. Définir le site en question (qui appartient à la piscine mentionné précédemment) à preloadEnabled=true
  3. Installez la fonction Application Initialization à l'installation de Windows selon les instructions here.

Une chose importante à noter est que si la tâche Application Initialization n'a pas été installé sur la machine que vous devez redémarrer la machine. C'est ce que j'ai manqué la dernière fois qui a conduit à perdre du temps à chercher d'autres choses :(

Quoi qu'il en soit, la configuration de ces trois choses fera en sorte que l'application passera par son initialisation, ce qui est particulièrement utile si vous voulez pour configurer une tâche d'ordonnancement (ea en utilisant le Quartz package NuGet).

note la façon que si vous configurez l'initialisation automatique comme ci-dessus, l'application sera également démarre automatiquement après le délai d'arrêt a expiré et pool d'applications réutilise.

+1

Vous avez fait ma journée. Bien que je n'ai pas eu besoin de redémarrer la machine, iisreset a été suffisant pour que ça marche. –