Guide de déploiement des solutions Services RIA

Cette rubrique répertorie les tâches à effectuer lors du déploiement d'une application Services RIA WCF sur un serveur Web. Le déploiement sur un serveur Web nécessite que le .NET Framework 4 et Internet Information Server (IIS) version 6 ou 7 soit installés sur le serveur pour héberger l'application. Les Services RIA doivent également être disponibles sur le serveur Web, mais leur installation à cet endroit peut ne pas être possible. Par conséquent, d'autres options de déploiement sont abordées. L'application Web ASP.NET doit être configurée correctement en vue d'un déploiement réussi. Les paramètres requis dans le fichier Web.config sont mis en évidence. Enfin, la procédure de publication fait l'objet d'une description.

Les problèmes pouvant survenir lors du déploiement d'une application Services RIA et les recommandations concernant leur gestion sont décrits dans la rubrique Dépannage du déploiement d'une solution Services RIA.

Vérifier que le .NET Framework 4 est installé sur le serveur Web

Le .NET Framework 4 doit être installé sur le serveur Web pour permettre le bon fonctionnement d'une application Services RIA . Pour plus d'informations, consultez Installation du .NET Framework.

Vérifier qu'IIS est installé sur le serveur Web

Internet Information Server (IIS) 6 ou 7 doit être installé sur le serveur Web pour permettre le bon fonctionnement d'une application Services RIA . Pour plus d'informations, consultez Installation et déploiement d'IIS 7 et Installation d'IIS 6.0.

Installer Services RIA sur le serveur Web

Les assemblys Services RIA doivent être disponibles sur le serveur Web. Il est recommandé d'installer Services RIA sur le serveur Web qui hébergera votre application. Si cette option n'est pas disponible, en raison d'un manque d'autorisations ou de tout autre problème, vous pouvez également les rendre disponibles sur le serveur Web en les incluant dans le dossier bin de votre projet au moment de sa publication ou en les installant dans le GAC (Global Assembly Cache).

  • Déploiement dans le dossier Bin

    Lors du déploiement de votre application, une option consiste à inclure les assemblys Services RIA dans le dossier bin de votre projet. Pour ce faire dans Visual Studio, vous devez sélectionner chacune des références d'assembly de projet Web dans l'Explorateur de solutions devant être incluses et définir la propriété Copie locale avec la valeur True dans la fenêtre Propriétés. Les deux assemblys qui doivent toujours être inclus sont

    • System.ServiceModel.DomainServices.Server.dll

    • System.ServiceModel.DomainServices.Hosting.dll

    La définition de ces valeurs de propriété sur True entraîne la copie des assemblys dans le dossier bin lors de la prochaine génération de la solution. Lorsque les assemblys sont copiés dans le dossier bin, ils sont copiés sur le serveur Web au moment de la publication du site.

  • Si vous utilisez Entity Framework pour accéder à une base de données, vous avez également besoin d'ajouter une référence à l'assembly System.ServiceModel.DomainServices.EntityFramework.dll.

  • Si vous utilisez LINQ to SQL pour accéder aux données, vous devrez ajouter une référence à l'assembly Microsoft.ServiceModel.DomainServices.LinqToSql.dll.

  • Déploiement dans le GAC

    Au lieu de copier les assemblys Services RIA dans le dossier Bin de chaque projet qui les utilise, vous avez la possibilité d'installer ces assemblys dans le GAC. Tous les assemblys figurant dans le GAC sont mis à la disposition de chaque application sur le serveur. Cette approche est plus simple à mettre en place car un assembly a uniquement besoin d'être mis à jour dans le GAC, et non pas dans chaque dossier Bin.

    Pour installer les assemblys Services RIA dans le GAC sur un serveur Web, exécutez la commande suivante.

    msiexec /i RiaServices.msi SERVER=TRUE
    

Configurer le serveur Web

Le déploiement d'une application Services RIA sur un serveur Web requiert que ses fichiers Web.config contiennent des attributs et des éléments correctement configurés. Le fichier Web.config gère la configuration de l'application ASP.NET et est créé automatiquement lorsque vous choisissez d'héberger une application Silverlight avec un projet Web ASP.NET dans l'assistant Nouvelle application Silverlight. Initialement, ce fichier Web.config spécifie uniquement que le framework cible est .NET Framework 4.0 dans l'élément <compilation>. Les valeurs réelles nécessaires au déploiement sont définies dans le fichier Web.config par défaut lorsque vous ajoutez un domaine de service au projet Web d'une application Services RIA à l'aide de l'assistant Ajouter une nouvelle classe de service de domaine.

Il existe plusieurs sections du fichier Web.config qui sont essentielles au déploiement. Il s'agit des sections qui configurent le mode d'hébergement ASP.NET, IIS et le mode d'authentification. Cette rubrique traite des valeurs des éléments de configuration de ces sections nécessaires au déploiement d'une application Services RIA . L'assistant définit ces valeurs par défaut, mais elles peuvent être modifiées par diverses procédures avant toute tentative de publication. Par conséquent, il est utile de connaître les valeurs correctes et de vérifier qu'elles sont définies comme attendu. Cette section décrit également plusieurs procédures qui utilisent l'assistant Internet Information Service (IIS) pour s'assurer qu'IIS est configuré de manière cohérente avec les valeurs spécifiées dans le fichier Web.config.

Les services de domaine Services RIA sont des services Windows Communication Foundation (WCF) qui, lorsqu'ils sont hébergés avec ASP.NET, doivent l'être en mode de compatibilité ASP.NET. Cette condition ne peut pas être définie dans du code et doit être spécifiée dans le fichier Web.config. Le mode de compatibilité ASP.NET est activé en définissant la propriété aspNetCompatibilityEnabled avec la valeur true dans l'élément <ServiceHostingEnvironment> de la section <system.serviceModel> :

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>

La valeur true est définie par défaut. Le mode de compatibilité permet à un service de domaine WCF d'utiliser l'ensemble des fonctionnalités de la plate-forme d'application Web ASP.NET. La définition de l'attribut multipleSiteBindingsEnabled avec la valeur true active plusieurs liaisons IIS par site pour un service avec le protocole HTTP. Pour plus d'informations sur les conséquences de l'activation de ces fonctionnalités, consultez Services WCF et ASP.NET.

Warning Attention :
Outre IIS, les services WCF proposent un grand nombre d'options d'hébergement. Il peut s'agir d'un service auto-hébergé dans une application managée, d'un service hébergé dans un service Windows managé ou du service WAS (Windows Process Activation Service). Par conséquent, les services WCF doivent opter pour le mode de compatibilité ASP.NET. Étant donné que les services de domaine Services RIA ne peuvent être hébergés que par IIS, ils sont limités à l'utilisation du transport HTTP.

L'assistant Ajouter une nouvelle classe de service de domaine ajoute un élément <add> de l'élément <httpModules> dans la section system.web requise par IIS 6. Confirmez que le .NET Framework 4.0 a été ciblé dans l'élément <compilation> de cette section et que le module du service de domaine a été ajouté avec les valeurs suivantes :

<system.web>
  <httpModules>
    <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </httpModules>
  <compilation targetFramework="4.0" />
</system.web>

L'assistant Ajouter une nouvelle classe de service de domaine ajoute un élément <modules> dans la section <system.webserver> requise par IIS 7. Confirmez qu'il contient les valeurs suivantes :

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <add name="DomainServiceModule" preCondition="managedHandler"
        type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </modules>
</system.webServer>
TipConseil :
Vous ne devez conserver que les éléments de configuration nécessaires à la version d'IIS qui est utilisée pour déployer l'application. Si le déploiement s'effectue avec IIS7, par exemple, les éléments configurant IIS6 doivent être supprimés. Toutefois, si les deux ensembles d'éléments d'hébergement sont conservés, cela n'a aucune conséquence négative.

Un seul schéma d'authentification peut être activé lors de l'utilisation d'une solution Services RIA . L'élément <authentication> du fichier Web.config configure le schéma d'authentification ASP.NET pour une application ASP.NET. Le schéma d'authentification détermine comment identifier des utilisateurs qui souhaitent consulter l'application ASP.NET. L'attribut mode spécifie le schéma d'authentification. Vérifiez l'élément <authentication> de votre fichier Web.config, ainsi que les autres fichiers de configuration dans la hiérarchie afin de vous assurer qu'il n'existe pas plus d'un schéma activé (Windows, Formulaires, Passeport, Aucun). La section n'est pas créée explicitement par défaut avec un service de domaine pour une application Services RIA . La valeur par défaut utilisée lorsque l'élément n'est pas spécifié explicitement est <authentication mode = “Windows”>. Une fois l'application Web publiée, nous devons vérifier que seule l'authentification Windows est activée pour IIS (si vous utilisez cette option) ; cette procédure est décrite ci-dessous.

Pour plus d'informations sur les paramètres Web.config, consultez Configuration d'ASP.NET.

Déployer l'application RIA

Publier l'application Web sur IIS

  1. Ouvrez votre application Services RIA dans Visual Studio 2010. Vous avez besoin de privilèges d'administrateur pour procéder à la publication. Par conséquent, veillez à cliquer avec le bouton droit de la souris sur Visual Studio 2010 dans le menu Démarrer et sélectionnez Exécuter en tant qu'administrateur lorsque vous ouvrez l'application.

  2. Sélectionnez le projet Web dans l'Explorateur de solutions, cliquez avec le bouton droit de la souris, puis choisissez Publier.

  3. Choisissez Déploiement Web comme méthode Publier, spécifiez localhost (en cas de publication au niveau local, ou le nom du serveur distant en cas de publication à distance) pour l'URL de service, puis sélectionnez Site Web par défaut (là encore, si le serveur est local) comme site dans la zone Site/application et indiquez le nom de votre application en tant qu'application dans la zone correspondante. Par exemple, pour publier localement une application Services RIA nommée RIAApp1, vous devez entrer Site Web par défaut/RIAApp1.

  4. Cochez les cases Marquer comme application IIS sur la destination et Conserver les fichiers supplémentaires sur la destination (ne pas supprimer).

  5. Cliquez sur le bouton Publier.

  6. Ouvrez le Gestionnaire des services IIS, accédez à l'application Web qui vient d'être publiée dans la liste Site Web par défaut contenue dans le volet Connexions et sélectionnez l'onglet Affichage du contenu au bas de la fenêtre.

  7. Pour ouvrir une page de test pour votre site, sélectionnez la page du serveur ASP.NET, cliquez avec le bouton droit de la souris et sélectionnez Parcourir.

TipConseil :
Si vous avez déployé les assemblys requis par les applicationsServices RIA dans le dossier bin, ils se trouvent dans le dossier de fichiers bin du Gestionnaire des services IIS. Ce dossier contient également l'assembly de l'application Web.
Warning Attention :
Si l'application n'apparaît pas sur la page de test, cela est dû à des problèmes avec ASP.NET ou Silverlight. Pour plus d'informations sur le déploiement de Silverlight, consultez Déploiement et localisation.

Spécifier le mode d'authentification dans le Gestionnaire des services IIS

  1. Sélectionnez votre application Web dans le volet Connexions du Gestionnaire des services IIS.

  2. Double-cliquez sur Authentification dans le groupe IIS d'Affichage des fonctionnalités.

  3. Assurez-vous que l'Authentification Windows (ou tout autre mode d'authentification que vous avez choisi d'employer) est activée. Par défaut, IIS prend uniquement en charge l'authentification anonyme. Par conséquent, cette procédure est généralement requise pour y remédier. ASP.NET autorise l'activation de plusieurs modes d'authentification et le Gestionnaire des services IIS accepte de tels paramètres. Les Services RIA autorisent l'utilisation d'Authentification par formulaire conjointement à l'Authentification anonyme (afin que les utilisateurs puissent accéder à la page de connexion), mais ils autorisent uniquement l'authentification Windows seule. Cliquez avec le bouton droit de la souris sur l'un des Noms et sélectionnez Activer ou Désactiver, selon ce qui est requis pour limiter l'activation de l'authentification à un mode.

Warning Attention :
Si vous ne voyez pas l'authentification Windows ou d'autres modes en regard d'Authentification anonyme, vous devez installer des composants manquants d'IIS. Pour plus d'informations sur ces procédures, consultez Installation et déploiement d'IIS 7.

Si vous rencontrez des problèmes pour afficher correctement la page de test, consultez la rubrique Dépannage du déploiement d'une solution Services RIA pour obtenir de l'aide.