Une idée de comment réparer ça?
UserService.UserServiceClient userServiceClient = new UserServiceClient();
userServiceClient.GetUsersCompleted += new EventHandler<GetUsersCompletedEventArgs>(userServiceClient_GetUsersCompleted);
userServiceClient.GetUsersAsync(searchString);
.
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_UserService"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:52185/UserService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_UserService"
contract="UserService.UserService"
name="BasicHttpBinding_UserService" />
</client>
<behaviors>
<serviceBehaviors>
<behavior name="Shell.Silverlight.Web.Service3Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<services>
<service behaviorConfiguration="Shell.Silverlight.Web.Service3Behavior"
name="Shell.Silverlight.Web.Service3">
<endpoint address=""
binding="basicHttpBinding"
contract="Shell.Silverlight.Web.Service3" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
Impossible de trouver l'élément de point de terminaison par défaut qui référence le contrat «UserService.UserService» dans la section de configuration du client ServiceModel. Cela peut être dû au fait qu'aucun fichier de configuration n'a été trouvé pour votre application ou qu'aucun élément de point de terminaison correspondant à ce contrat n'a pu être trouvé dans l'élément client.
Résolu!
Je n'ai pas mentionné qu'il s'agissait d'une application Silverlight. J'avais la référence wcf dans une DLL qui avait son propre fichier "ServiceReferences.ClientConfig". J'ai déplacé le contenu de ServiceReferences.ClientConfig de la DLL vers le projet silverlight principal et cela a fonctionné.
Réponses:
J'ai eu une course avec le même problème. Mon application était également une application Silverlight et le service était appelé à partir d'une bibliothèque de classes avec un UserControl personnalisé qui y était utilisé.
La solution est simple. Copiez les définitions de point de terminaison du fichier de configuration (par exemple ServiceReferences.ClientConfig) de la bibliothèque de classes dans le fichier de configuration de l'application silverlight. Je sais que vous vous attendez à ce que cela fonctionne sans avoir à faire cela, mais apparemment, quelqu'un à Redmond a pris des vacances ce jour-là.
la source
web.config
?Vous pouvez également définir ces valeurs par programme dans la bibliothèque de classes, cela évitera un déplacement inutile des fichiers de configuration dans la bibliothèque. L'exemple de code pour BasciHttpBinding simple est -
la source
Juste au cas où quelqu'un rencontre le même problème en utilisant WPF (plutôt que WCF ou Silverlight):
J'ai eu cette erreur lors de la connexion à un service Web. Quand mon code était dans la solution WPF Application "principale", pas de problème, cela fonctionnait parfaitement. Mais lorsque j'ai déplacé le code vers la solution de couche DAL la plus sensible, cela lèverait l'exception.
Comme indiqué par "Sprite" dans ce fil, vous devez copier manuellement la balise.
Pour les applications WPF, cela signifie copier la balise de app.config dans ma solution DAL vers app.config dans la solution d'application WPF principale.
la source
J'ai rencontré le même problème, quelle qu'en soit la raison, Visual Studio n'a pas mis à jour la configuration Web lorsque j'ai ajouté le service pour la première fois. J'ai trouvé que la mise à jour de la référence de service a également résolu ce problème.
Pas:
la source
Modifiez le fichier web.config du service WCF en tant que "endpoint address =" "binding =" basicHttpBinding "..." (précédemment binding = "wsHttpBinding") Après avoir généré l'application, dans "ServiceReferences.ClientConfig" "" configuration> a la valeur . Ensuite, cela fonctionnera très bien.
la source
Renommez le fichier output.config produit par svcutil.exe en app.config. cela a fonctionné pour moi.
la source
Avez-vous une interface que votre classe "UserService" implémente.
Vos points de terminaison doivent spécifier une interface pour l'attribut de contrat:
la source
Je ne sais pas si c'est un problème. Le point de terminaison et la liaison ont tous deux le même nom
la source
Je ne sais pas si c'est vraiment un problème, mais je vois que vous avez le même nom pour votre configuration de liaison ().
J'essaie généralement d'appeler mes points de terminaison quelque chose comme "UserServiceBasicHttp" ou quelque chose de similaire (le "Binding" n'a vraiment rien à faire ici), et j'essaie d'appeler mes configurations de liaison quelque chose avec ".... Configuration", par exemple "UserServiceDefaultBinding", pour éviter tout conflit de nom potentiel.
Marc
la source
J'ai dû ajouter le service dans le fichier App.config appelant pour qu'il fonctionne. Assurez-vous que vous, mais après tout. Cela semblait fonctionner pour moi.
la source
Ce problème se produit lorsque vous utilisez votre service via une autre application.Si l'application a un fichier de configuration, ajoutez simplement les informations de configuration de votre service à ce fichier. Dans ma situation, il n'y avait pas de fichier de configuration, donc j'utilise cette technique et cela a fonctionné bien.Juste stocker l'adresse url dans l'application, la lire et en utilisant la méthode BasicHttpBinding (), l'envoyer à l'application de service en tant que paramètre.C'est une simple démonstration de comment j'ai fait il:
la source
Pour ceux qui travaillent avec les services AX 2012 AIF et essaient d'y appeler un projet C # ou VB dans AX (x ++) et souffrent de telles erreurs de "impossible de trouver le point de terminaison par défaut" ... ou "aucun contrat trouvé" ... retour à votre projet visual studio (c #) et ajoutez ces lignes avant de définir votre client de service, puis déployez le projet et redémarrez le client AX et réessayez: Remarque, l'exemple est pour l' adaptateur NetTcp , vous pouvez facilement utiliser n'importe quel autre adaptateur à la place selon vos besoins .
la source
Dans le cas où vous utilisez une application WPF utilisant le framework PRISM, la configuration doit exister dans votre projet de démarrage (c'est-à-dire dans le projet où réside votre programme de démarrage.)
En bref, supprimez-le simplement de la bibliothèque de classes et mettez-le dans un projet de démarrage.
la source