ChannelFactory informations d'Identification + objet est en lecture seule
Salutations, quel est le problème que lorsque je tente de définir les informations d'identification pour mon usine comme suit:
ChannelFactory<IWCFSeekService> factory = Factory;
if (factory != null)
{
factory.Credentials.UserName.UserName = CServiceCredentials.Instance.Username;
_Channel = factory.CreateChannel();
}
J'obtiens une exception que l'objet est en lecture seule. Elle survient lorsque je veux mettre le nom d'utilisateur.
OriginalL'auteur Piotr Ptak | 2010-03-07
Vous devez vous connecter pour publier un commentaire.
Oui, le La documentation MSDN est assez clair:
La propriété seulement a un
get
accesseur - pas d'accesseur set --> il est en lecture seule.Également dans la MSDN docs:
Alors qu'est-ce que vous faites pour faire ici??
Mise à JOUR: vous ne pouvez pas définir les informations d'identification d'utilisateur que votre proxy client est censé utiliser sur le canal de l'usine. Voir ce excellent post de blog sur la façon de le faire de toute façon, avec un peu de détour:
troisièmement, l'ensemble de ces nouvelles références en tant que nouveau point de terminaison du comportement d'usine
Semble un peu bizarre et compliqué, mais qui semble être la seule façon d'atteindre cet!
mais regardez mon code..j'ai d'abord créer un ChannelFactory..puis-je définir les informations d'identification.
mais je ne peux pas mon _Channel est de type IWCFSeekFactory
eh bien, j'ai enfin fixé. Je peux spécifier des informations d'identification dans ChannelFactory que c'est dans mon code, le problème était que la précédente dans le code j'ai également créé quelques-Canal, qui a été unnessesary
marque: effectivement, ClientCredentials propriété a un setter, mais il jette si les informations d'identification est en lecture seule (ce qui est).
OriginalL'auteur marc_s
Pour compléter cette réponse, la façon dont il travaille pour tout le monde comme il est expliqué à
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/4668e261-0fd0-4ca5-91d2-497aa479f2a9/
Vous avez besoin de ne pas supprimer, mais de remplacer trouvé des informations d'identification:
Ce qui a résolu mon problème.
OriginalL'auteur Ariel Altamirano
Cela ne se produira pas si le service de référence est ajoutée par -> Ajouter une référence de service ->Avancé>Ajouter une Référence Web-> Url/wsdl (disque local).
La référence.cs fichier généré est différent et va vous permettre de définir les informations d'identification.
L'erreur est parce que vous pourriez avoir ajouté la référence par l'écran lui-même (Ajouter une référence de service)
OriginalL'auteur Blue Clouds