Hébergement dans IIS - Pour les tests
Pour héberger le service dans IIS, vous devez créer un répertoire virtuel. Il y a deux façons de le faire :
Pour un test facile :
- Cliquez avec le bouton droit de la souris sur votre projet de service WCF dans Visual Studio, sélectionnez Propriétés / Web.
- Sélectionnez "Utiliser le serveur Web IIS local" à cet endroit.
- Ne pas activer "Utiliser IIS Express".
- L'URL du projet est l'adresse à laquelle votre serveur doit être visible sur le web.
http://yourhost/somepath/
- Cliquez sur "Create Virtual Directory" (il se peut que vous deviez exécuter Visual Studio en tant qu'administrateur pour cela, mais cette étape n'est nécessaire qu'une seule fois, vous n'avez pas besoin des privilèges d'administrateur pour une utilisation quotidienne).
Après cela, votre répertoire virtuel est configuré et IIS dirigera toutes les requêtes vers http://yourhost/somepath
à votre service WCF. Notez que ceci pointera vers les binaires qui ont été générés par Visual Studio à l'intérieur de votre répertoire de projet, donc une reconstruction sera automatiquement des choses.
Il s'agit de l'option la plus simple pour le développement et les tests. Vous n'avez même pas besoin d'ouvrir Visual Studio, mais toute modification apportée sera automatiquement répercutée sur l'instance déployée.
Hébergement dans IIS - Pour la production
Pour la production, vous devez créer un véritable répertoire virtuel. Pour ce faire :
- Créez un répertoire où votre service doit être hébergé, par exemple `. C:\inetpub\yoursite\yourservice\ ', il peut s'agir de n'importe quel répertoire de votre système de fichiers.
- Copiez votre service web dans ce répertoire (Visual Studio a un moyen d'automatiser cela, mais je ne l'ai jamais utilisé, donc je ne sais pas vraiment comment cela fonctionne).
- Ouvrez "Internet Information Services (IIS) Manager" (doit être exécuté en tant qu'administrateur).
- Dans le volet de gauche, vous trouverez vos instances et sites IIS configurés. Si vous exécutez cette opération pour la première fois et que le volet de gauche est vide (il devrait y avoir un site par défaut), il suffit de cliquer avec le bouton droit de la souris et de sélectionner "Ajouter un site Web".
- Cliquez avec le bouton droit de la souris sur votre site Web et sélectionnez "Ajouter un répertoire virtuel". L'alias est le nom visible du nouveau répertoire, par exemple
http://yoursite/alias/
et le chemin physique pointe simplement vers le répertoire dans lequel vous avez déployé votre service.
Auto-hébergement
L'application de votre console est appelée auto-hébergement. Si cela ne fonctionne pas en dehors de Visual Studio, il y a généralement quelque chose qui ne va pas dans votre application de console. app.config
. J'ai un exemple simple ici .
L'hébergement avec Mono
Pour Mono, vous avez trois options :
- Auto-hébergement
- Apache avec mod-mono pour la production
- Apache avec mod-mono utilisant le répertoire courant pour les tests
L'auto-hébergement signifie la création d'une simple application console qui fait quelques
var host = new System.ServiceModel.ServiceHost(typeof(MyService));
host.Open();
Console.WriteLine("Service running");
foreach (var se in host.Description.Endpoints)
Console.WriteLine(se.Address);
Console.ReadLine();
host.Close();
et l'exécuter avec Mono sur la ligne de commande.
Voir Impossible d'accéder au service WCF hébergé dans Apache avec mod-mono pour savoir comment configurer apache avec mod-mono, y compris quelques exemples.
Vous avez également deux options ici : soit vous copiez votre service dans un répertoire qui sera récupéré par Apache - ou vous pouvez également lancer mod-mono-server
manuellement et spécifier un répertoire arbitraire, par exemple le répertoire courant pour les tests.