2017-05-17 6 views
1

La clarté du site Web Azure concernant les instances, ces instances s'exécutent sur plusieurs machines comme un environnement de batterie de serveurs Web où une requête client (session) peut être serveur par serveur différent dans la batterie. Le problème avec l'application asp.net de la ferme serveur est que nous pouvons perdre la variable de session si c'est le cas, pour ce problème, nous ajoutons une clé machine dans web.config qui assure que la session client sera toujours serveur par le même serveur donc il n'y aura pas de perte de variable de session.Qu'est-ce qu'une instance de site Web Azure?

Fonctionnement de l'instance Azure. cela ne veut pas dire que nous pouvons avoir 10 sites Web sous le même plan, laissez ex s1 Standard.

J'héberge asp.net webform base site Web sur Azure Je suis confus comment fonctionne exactement l'instance. il y a beaucoup d'article sur internet pour créer de la confusion.

Répondre

2

La chose avec PaaS est que vous ne doivent pas s'en soucier. Si vous avez un statefull le site, vous pouvez utiliser le ARR paramètre d'affinité pour assurer un client obtient toujours la même instance: enter image description here

+1

Maintenant, bien sûr, si une instance tombe en panne à cause d'un échec ou d'une auto-échelle, les choses vont se décomposer;) – juunas

+0

ARR Affinity résout le problème dans une large mesure, mais pas la preuve complète. et à ma compréhension, l'instance est comme une machine virtuelle. Donc, de mon côté, la preuve d'échec peut être la solution peut être une session basée sur SQL Server. maintenant cela conduit à une autre question: si le serveur de session tombe serveur SQL Server en cluster ou machine VR avec SQL Server pour ce compte d'utilisateur. – Learning

+0

SQL Server est une option mais la ressource Azure préférée pour stocker les informations de session est le cache Redis. Le niveau standard offre la réplication et le basculement et offre 99,99% de SLA. C'est probablement le meilleur que vous pouvez obtenir (il n'y a pas de solution à 100%). –

2

Ajout à la réponse de Martin Brandl.

Un plan de service d'application peut avoir plusieurs instances. Ces instances exécutent toutes les applications de ce plan. C'est à peu près comme une ferme Web classique. Sauf qu'il est beaucoup plus facile à gérer.

Il existe une meilleure façon de conserver les informations de session dans une batterie de serveurs Web plutôt que de s'appuyer sur des sessions persistantes avec ARR Affinity. Placez les données de session dans un emplacement central. Pour cela, vous pouvez utiliser Azure Redis Cache ou SQL Database. Il existe des fournisseurs d'état de session prêts à l'emploi pour ceux-ci que vous pouvez simplement connecter à une application ASP.NET. De cette façon, votre état de session n'est pas stocké sur les instances, vous n'avez donc pas besoin de vous préoccuper si les clients touchent le même serveur.

Le problème que j'ai avec ARR Affinity, c'est qu'Azure ne garantit pas que vos instances continueront à fonctionner. Une panne matérielle peut en entraîner une et vous perdez une partie de vos données de session. Si vous utilisez l'échelle automatique, la même chose.

+0

Je suis d'accord que Redis serait une meilleure option pour stocker des informations de session. –