Les schémas d'authentification configurés sur l'hôte ('Anonymous') ne permettent pas ceux configurés sur la liaison 'BasicHttpBinding' ('Negotiate'). Assurez-vous que le SecurityMode est défini sur Transport ou TransportCredentialOnly. En outre, cela peut être résolu en modifiant les schémas d'authentification de cette application via l'outil de gestion IIS, via la propriété ServiceHost.Authentication.AuthenticationSchemes, dans le fichier de configuration de l'application situé à l'élément, en mettant à jour la propriété ClientCredentialType sur la liaison ou en ajustant la propriété AuthenticationScheme sur HttpTransportBindingElement.
Cette erreur peut s'afficher lorsque les modes d'authentification ne sont pas installés sur votre serveur Web IIS local. Allez au Panneau de configuration -> Programmes -> Activer ou désactiver des fonctionnalités Windows
Vérifiez les services Internet -> Services Web dans le monde entier -> Sécurité -> Et activez les modes Authentification de base, Windows et Digest. Ouvrez IIS et accédez à votre application, accédez à la section Authentification et activez les modes d'authentification requis . Pour moi, les modes d'authentification n'apparaissent pas immédiatement après l'installation ou après le redémarrage du serveur Web. Faire un redémarrage de la machine leur a montré dans l'application web.
Si nécessaire - installez les fonctionnalités comme décrit ci-dessus , ouvrez le Gestionnaire IIS, ouvrez les fonctionnalités du serveur
ouvrez la fonctionnalité "Authentification":
activer/désactiver ceux qui sont nécessaires:
Lorsque cela m'est arrivé, j'ai constaté que Visual Studio utilisait le site Web par défaut pour héberger mon service lors de l'ajout de la référence de service à l'aide du bouton «Découvrir». Pour résoudre ce problème, je devais activer l'authentification que mon service utilisait sur le site Web par défaut d'IIS. Depuis que j'utilisais l'authentification Windows, l'activer pour le "site Web par défaut" dans IIS et cela semble avoir résolu mon problème. Bien sûr, si votre service utilise un autre type d'authentification, vous devrez activer l'authentification correcte.
Pour configurer l'authentification, ouvrez IIS. Sous "Sites", sélectionnez le "Site Web par défaut", puis Authentification.
Dans mon cas, le problème était une mauvaise configuration de service après refactoring . Si l'attribut name dans service tag ne pointe pas vers une classe existante, vous pouvez obtenir cette exception, qui vous induira totalement en erreur.
Alors faites attention au nom:
<service behaviorConfiguration="FooBehavior" name="Fully.Qualified.Name.Of.Class.Implementing.Service.Contract.Here">