Génération des exemples Windows Communication Foundation
Les exemples Windows Communication Foundation (WCF) peuvent être générés à l’aide de l’IDE Visual Studio ou de la commande msbuild à partir de la ligne de commande. Les deux procédures sont décrites dans cet article.
Notes
Avant de créer ou d’exécuter l’un des exemples WCF, assurez-vous d’avoir effectué la procédure d’installation unique pour les exemples Windows Communication Foundation.
Pour générer l'exemple à partir d'une invite de commandes
Ouvrez une invite de commandes développeur pour Visual Studio et accédez au sous-répertoire spécifique de la langue situé sous l’emplacement du répertoire dans lequel vous avez installé de l’exemple.
Dans la ligne de commande, tapez
msbuild
. Les fichiers de programme du client sont générés dans client\bin, et les fichiers de programme du service sont générés dans service\bin. Si le service est hébergé par IIS (Internet Information Services), les fichiers programme du service sont également copiés dans le répertoire servicemodelsamples et dans son sous-répertoire \bin.
Notes
Vous devez affecter %systemdrive%\inetpub\wwwroot aux listes de contrôle d’accès (ACL) pour accorder des autorisations de modification au compte sous lequel vous vous êtes connecté. Sinon, certains des événements post-build échoueront. Vous pouvez également laisser les listes de contrôle d'accès telles quelles et exécuter l'invite de commandes du Kit de développement logiciel (SDK) en tant qu'administrateur.
Pour générer l'exemple à l'aide de Visual Studio
Dans le menu Fichier de Visual Studio, sélectionnez Ouvrir>Projet/solution. Accédez au sous-répertoire spécifique aux langues situé sous le répertoire d’installation de l’exemple, puis double-cliquez sur l’icône du fichier .sln pour ouvrir la solution dans Visual Studio.
Dans le menu Générer, sélectionnez Régénérer la solution.
Les fichiers de programme du client sont générés dans client\bin, et les fichiers de programme du service sont générés dans service\bin. Si le service est hébergé par IIS (Internet Information Services), les fichiers programme du service sont également copiés dans le répertoire servicemodelsamples et dans son sous-répertoire \bin.
Notes
Vous devez affecter %systemdrive%\inetpub\wwwroot aux listes de contrôle d'accès (ACL) pour accorder des autorisations de modification au compte sous lequel vous vous êtes connecté. Sinon, certains des événements post-build échoueront. Vous pouvez également laisser les listes de contrôle d'accès telles quelles et exécuter l'invite de commandes du Kit de développement logiciel (SDK) ou Visual Studio en tant qu'administrateur. Certaines actions de Visual Studio (tel que l’attachement d’un débogueur au processus Worker ASP.NET) requièrent également des privilèges d’administrateur.
Scripts et fichiers de commandes d'installation
Les fichiers de commandes Setup.exe et Cleanup.exe et les scripts doivent être exécutés à partir d’une invite de commandes développeur pour Visual Studio. Plusieurs fichiers d'installation et de nettoyage effectuent des tâches qui requièrent des privilèges d'administrateur et doivent être lancés avec des privilèges d'administrateur.
Informations de sécurité importantes à propos des points de terminaison de métadonnées
Pour empêcher la divulgation involontaire de métadonnées de service potentiellement sensibles, la publication de métadonnées est désactivée par défaut dans la configuration des services WCF (Windows Communication Foundation). Ce comportement est sécurisé par défaut, mais il signifie également que vous ne pouvez pas utiliser d’outil d’importation de métadonnées (tel que Svcutil.exe) pour générer le code client requis pour appeler le service, à moins que le comportement de publication des métadonnées du service soit activé explicitement dans la configuration. Pour faciliter l'utilisation des exemples, pratiquement tous les exemples exposent un point de terminaison de publication de métadonnées non sécurisé. De tels points de terminaison sont potentiellement disponibles aux consommateurs non authentifiés anonymes, et il est nécessaire de se montrer vigilant et de s’assurer que la divulgation publique des métadonnées d’un service est appropriée avant de déployer de tels points de terminaison. Pour plus d’informations sur la publication des métadonnées du service, consultez l’exemple Comportement de publication des métadonnées. Consultez Point de terminaison de métadonnées sécurisé personnalisé pour obtenir un exemple de sécurisation d’un point de terminaison de métadonnées.
Gestion des exceptions
En général, ces exemples n'incluent pas la gestion des exceptions pour que le code reste axé sur le sujet de l'exemple. Pour plus d’informations sur la gestion des exceptions, consultez l’exemple Exceptions attendues.
Régénération des clients et de la configuration avec Svcutil
Vous pouvez utiliser l’Outil Service Model Metadata Utility (Svcutil.exe) pour régénérer le code client et la configuration de la plupart des exemples. Certains exemples nécessitent une modification manuelle de la configuration. Par exemple, si vous utilisez Svcutil.exe pour régénérer la configuration d'un exemple qui utilise des informations d'identification de certificat client, vous devez spécifier manuellement les informations d'identification précédemment configurées. Certains exemples utilisent des options Svcutil.exe spécifiques pour affecter le code généré ; ces options sont spécifiées dans les rubriques d'exemple spécifiques.
Pour régénérer les fichiers du client et les fichiers de configuration
Ouvrez une invite de commandes du Kit de développement SDK et accédez au sous-répertoire spécifique aux langues situé sous l'emplacement d'installation de l'exemple.
Si le service est un type hébergé sur le Web, utilisez la commande suivante.
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /out:generatedClient.cs
Si le service est un type auto-hébergé, utilisez la commande suivante.
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /out:generatedClient.cs
Remplacez
http://localhost:8000/ServiceModelSamples/service.svc/mex
par l’adresse du point de terminaison mex du service auto-hébergé.Pour générer le client dans un type Visual Basic, utilisez la commande suivante.
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
Si le service est un type auto-hébergé, utilisez la commande suivante.
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
Notes
Pour ignorer la génération de la configuration du client, ajoutez l’option /noConfig.