Ich habe einen Konsolen-App-Client, der mit einem WCF-Dienst kommuniziert, der von einer Konsolen-App auf einem anderen Server gehostet wird. Es verwendet Windows-Authentifizierung mit Sicherheitsmodus = NachrichtWCF: Client-Identitätswechsel
Es funktioniert gut, bis ich den Dienst ändern, um die Anmeldeinformationen des Clients zu imitieren. Die Änderungen, die ich tun, dass zu tun ist:
1. <serviceAuthorization impersonateCallerForAllOperations="true" />
In das Betriebsverhalten
2. Fügen Sie [OperationBehavior(Impersonation = ImpersonationOption.Required)]
meiner Methode Unterschrift
ich dann meinen Dienst hosten und es läuft als normal, alles gut.
In meinem Klienten das einzige, was ich tun ist hinzuzufügen:
ChannelFactory<IService1> channel = new ChannelFactory<IService1>(binding, endPoint);
channel.Credentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
ich dann mein Client ausführen und den Fehler:
Der Server ist nicht eine sinnvolle Antwort vorsah; Dies kann durch eine Vertragsinkongruenz, einen vorzeitigen Sitzungsabbruch oder einen internen Serverfehler verursacht werden.
Gibt es noch etwas, das ich vermisse, dass ich mit der Client-Konfiguration tun muss?
@Tom Haben Sie Ihren Client neu kompiliert, nachdem Sie OperationBehaviour geändert haben? – JTew