WCFTestClient La requête HTTP est autorisée avec le schéma d'authentification client "Anonyme"
J'ai créé un service WCF et déployé sur le Serveur. Lorsque je parcours ce service, il me donne une réponse positive avec ?URL wsdl. Maintenant je suis en train de tester le service par client Test WCF. Il montre la bonne métadonnées. Mais quand j'essaie d'appeler l'une de la méthode à partir du service, il me montre une exception... voici les erro détails avec trace de la pile..
La requête HTTP est autorisée avec
le schéma d'authentification client
"Anonyme". L'en-tête d'authentification
reçu du serveur a été
"Negotiate,NTLM".
Serveur trace de la pile:
à
Système.ServiceModel.Les canaux.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest
demande, HttpWebResponse réponse,
WebException responseException,
HttpChannelFactory usine)
La requête HTTP est autorisée avec le client
schéma d'authentification "Anonyme". L'
en-tête d'authentification reçues de
le serveur était "Negotiate,NTLM".
Serveur trace de la pile:
à
Système.ServiceModel.Les canaux.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest
demande, HttpWebResponse réponse,
WebException responseException,
HttpChannelFactory usine)
Client Liaisons:
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IServiceMagicService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="None">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true"
establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
Liaisons Du Serveur:
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_SEOService" closeTimeout="00:10:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" bypassProxyOnLocal="true" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="999524288" maxReceivedMessageSize="655360000" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="900000" maxArrayLength="900000" maxBytesPerRead="900000" maxNameTableCharCount="900000" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
<security mode="None">
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true" establishSecurityContext="true" />
</security>
</binding>
<binding name="WSHttpServiceMagicBinding" closeTimeout="00:10:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" bypassProxyOnLocal="true" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="999524288" maxReceivedMessageSize="655360000" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="900000" maxArrayLength="900000" maxBytesPerRead="900000" maxNameTableCharCount="900000"/>
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
<security mode="None">
<transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/>
<message clientCredentialType="Windows" negotiateServiceCredential="true" establishSecurityContext="true"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
Client Client Article:
<client>
<endpoint address="http://hydwebd02.solutions.com/GeoService.Saveology.com/ServiceMagicService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IServiceMagicService"
contract="IServiceMagicService" name="WSHttpBinding_IServiceMagicService" />
</client>
Du serveur de la Section des Services:
<services>
<service behaviorConfiguration="GeoService.Saveology.com.CityStateServiceProviderBehavior"
name="GeoService.Saveology.com.CityStateServiceProvider">
<endpoint binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_SEOService"
contract="SEO.Common.ServiceContract.ICityStateService" />
<endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
contract="IMetadataExchange" />
</service>
<service behaviorConfiguration="GeoService.Saveology.com.ServiceMagicServiceProviderBehavior"
name="GeoService.Saveology.com.ServiceMagicServiceProvider">
<endpoint binding="wsHttpBinding" bindingConfiguration="WSHttpServiceMagicBinding"
contract="SEO.Common.ServiceContract.IServiceMagicService">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" contract="IMetadataExchange" />
</service>
</services>
- Ce qui se passe quand vous appelez ces méthodes avec un client réel?
- OK,merci, mais vous aurez besoin afin d'afficher ÉGALEMENT le serveur du <services> section, et le client <client> section, nous allons donc voir comment ces points sont mis en place et comment vous appelez eux......
- Avec de vrais clients, il fonctionne sans aucun problème.
- J'ai posté les deux client <client> sectiona dn du serveur <services> section.
- C'est symptomatique de la .Net monde que vous êtes tellement nombreux (valide) des réponses différentes à la même question, et pas un seul d'expliquer quels sont les paramètres qui vous sont en train de changer et pourquoi. Personne ne comprends ce qu'il/elle est en train de faire?
- Peut se produire à cause du mot de passe Incorrect.
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas de contrôle sur la configuration de sécurité pour le service, j'ai été remettre en, mais j'ai reçu le même message d'erreur. J'ai pu réparer mon client comme suit.
Dans le fichier de configuration, configurer le mode de sécurité:
Dans le code, définir la classe de proxy pour permettre l'usurpation d'identité (j'ai ajouté une référence à un service appelé client):
<security mode="TransportCredentialOnly">
il semble que vous n'avez pas besoin d'inclure la configuration de message de sécurité; le message SOAP est envoyés en clair en clair. Le<message>
balise semble être ignorée si elle ne fait pas de mal, c'est juste pas nécessaire. Source: msdn.microsoft.com/en-us/library/ff648505.aspxJ'ai un problème similaire, avez-vous essayé:
Une autre solution possible à cette erreur que j'ai trouvé. Pourrait ne pas avoir répondu OP exacte de la question, mais peut aider les autres qui trébuchent à travers ce message d'erreur.
J'étais en train de créer mon Client dans le code à l'aide de WebHttpBinding, afin de reproduire la ligne suivante:
Que j'avais à faire:
ainsi que la mise en
proxy.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
Je vois que ce n'est pas encore répondu, c'est une citation exacte à partir d'ici:
J'ai trouvé ce via: http://fczaja.blogspot.com/2009/10/http-request-is-unauthorized-with.html
Après googler: http://www.google.tt/#hl=en&source=hp&q=+The+HTTP+request+is+unauthorized+with+client+authentication+scheme+%27Anonymous
J'ai eu un problème similaire et essayé tout ce qui est suggéré ci-dessus. Ensuite, j'ai essayé de changer les clientCreditialType de Base et tout a bien fonctionné.
Voici ce que j'avais à faire pour obtenir ce travail. Cela signifie:
Mon site est géré par DotNetPanel. Il dispose de 3 options de sécurité pour les répertoires virtuels:
Seulement "Autoriser l'Accès Anonyme" est nécessaire (bien que, que, par lui-même n'était pas assez).
Réglage
N'ai pas fait une différence dans mon cas.
Cependant, l'utilisation de cette liaison travaillé:
Essayer de fournir de nom d'utilisateur et le mot de passe de votre client comme ci-dessous
client.ClientCredentials.Nom d'utilisateur.Nom d'utilisateur = @"Domaine\nom d'utilisateur";
client.ClientCredentials.Nom d'utilisateur.Password = "mot de passe";
Juste eu ce problème sur une machine de développement (production fonctionne très bien). - Je modifier ma config dans IIS pour autoriser l'accès anonyme et de mettre mon nom et mon mot de passe des informations d'identification.
Pas la meilleure façon, j'en suis sûr, mais il fonctionne à des fins de test.
J'ai eu la même erreur aujourd'hui, après le déploiement de notre service d'appel à un service externe pour la mise en scène de l'environnement dans azure. Local le service appelé le service externe sans erreurs, mais après le déploiement, il n'a pas.
En fin de compte il s'est avéré que le service externe a un IP de validation. Le nouvel environnement dans Azure a une autre adresse IP et il a été rejeté.
Donc si jamais vous obtenez cette erreur lors de l'appel à des services externes
Il pourrait être une restriction par IP.