2 votes

Service WCF hébergé avec un utilisateur dans le groupe IIS WPG ?

J'ai hébergé un service WCF sur IIS 6 en utilisant un AppPool personnalisé. Cet AppPool est configuré pour fonctionner sous un utilisateur qui est dans le groupe IIS_WPG.

Je peux accéder au service à partir d'un emplacement distant et je peux voir le wsdl aussi bien, mais quand j'essaie d'accéder au même service par "WCF Test Client", j'ai obtenu l'erreur suivante

enter image description here

Mise à jour : Lorsque j'exécute le même service en changeant l'identité d'AppPool en groupe "Network Service", le service est accessible par le client de test. Les métadonnées du service ne sont donc pas accessibles uniquement lorsque le service fonctionne sous une identité autre que "Network Service" (qui est l'identité par défaut de l'utilisateur).

1voto

J'ai rencontré ce problème dans le passé et la solution était de s'authentifier en utilisant un compte de service entre le client et le serveur hébergeant le service.

0voto

amazingCode Points 1

J'ai le même problème que celui décrit ci-dessus Voici ce que j'ai fait pour trouver une solution à ce problème.

Je vais commencer par mon processus de déploiement de WCF à IIS6.

  1. Créez un dossier dans le serveur et copiez le paquet WCF.

  2. Créez un AppPool pour votre WCF.

  3. Faites un clic droit sur l'AppPool nouvellement créé, sélectionnez Propriétés, puis allez dans l'onglet Identité. Sélectionnez "configurable" puis entrez l'identifiant de votre compte de service au lieu de SERVICE RÉSEAU.

  4. Je n'ai pas créé de nouveau site web. Pour mon cas, j'ai créé un répertoire virtuel sous le site Web de défaut et le point il au dossier de WCF que j'ai copié.

  5. Une fois le répertoire virtuel créé, faites un clic droit dessus puis sélectionnez Propriétés. Vous trouverez ci-dessous les paramètres pour chaque onglet

    Onglet Répertoire virtuel

    • Cliquez sur le bouton Créer pour créer le nom de l'application.
    • Sélectionnez "scripts Only" dans la permission d'exécution.
    • Sélectionnez l'AppPool que vous avez créé.
    • Cliquez sur le bouton Appliquer pour enregistrer les modifications.

    Onglet Document

    • Ajouter un nouveau contenu - le nom de votre fichier WCF .svc.
    • Cliquez sur le bouton Appliquer pour enregistrer les modifications.

    Onglet Sécurité de l'annuaire

    • Cliquez sur le bouton Modifier dans Authentification et contrôle d'accès.
    • Changez le nom d'utilisateur et le mot de passe avec l'identifiant de votre compte de service.
    • Cliquez sur OK (entrez à nouveau le mot de passe si une reconfirmation est nécessaire).
    • Cliquez sur le bouton Appliquer pour enregistrer les modifications.

    Onglet ASP.Net

    • Sélectionnez la version 4.0.30319 (si .net framework 4.0 est requis)
    • Cliquez sur le bouton Appliquer pour enregistrer les modifications.
  6. Maintenant, allez dans Gestion de l'ordinateur > Outils système > Utilisateurs et groupes locaux > Groupes

  7. Ouvrez le groupe IIS_WPG et ajoutez votre compte de service.

  8. Allez ensuite dans Démarrer > Outils d'administration > Politique de sécurité locale.

  9. Développez Paramètres de sécurité > Stratégies locales > Attribution des droits d'utilisateur. Recherchez l'option Log on as service et ajoutez-y votre compte de service.

  10. Enfin, allez sur C:\WINDOWS\Temp dossier. Faites un clic droit dessus puis sélectionnez Propriétés. Cliquez sur l'onglet Sécurité puis ajoutez votre compte de service.

  11. Pour définir une autorisation spéciale, cliquez sur le bouton Avancer.

  12. Sélectionnez votre compte de service puis cliquez sur le bouton Modifier. Dans la liste des permissions, cochez ou vérifiez uniquement les permissions "List Folder/Read Data" et "Delete". Cliquez sur le bouton OK et Appliquer pour appliquer les changements. Si la boîte de message vous y invite, cliquez sur Oui pour appliquer dans les sous-dossiers.

  13. Maintenant, le moment final. Assurez-vous que le pool d'applications fonctionne. Testez le WCF dans le navigateur et ensuite dans le client de test WCF.

    1. Dans mon cas, cela fonctionne parfaitement :)

J'espère que cela vous aidera...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X