Laden...

wcf fehler: Der ChannelDispatcher bei "net.tcp://localhost:8777/MyProdService" mit den Verträgen ""I

Erstellt von jogibear9988 vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.970 Views
J
jogibear9988 Themenstarter:in
641 Beiträge seit 2007
vor 16 Jahren
wcf fehler: Der ChannelDispatcher bei "net.tcp://localhost:8777/MyProdService" mit den Verträgen ""I

wenn ich folgende zeile in meinem Aerver hinzufüge:
tcpBinding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
bekomme ich folgende fehlermeldung:
Der ChannelDispatcher bei "net.tcp://localhost:8777/MyProdService" mit den Verträgen ""IServerFunktionen"" kann seinen IChannelListener nicht öffnen.

der rest vom code:


            //Neuen Server erzeugen aus der Klasse classServerFunktionen
            ServiceHost myHost = new ServiceHost(typeof(classServerFunktionen));
            //Wie wird zu dem Server verbunden, welches Interface nutz er?

   
            NetTcpBinding tcpBinding = new NetTcpBinding();
            tcpBinding.TransactionFlow = false;
            tcpBinding.Security.Transport.ProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;
            tcpBinding.Security.Mode = SecurityMode.Message;
            tcpBinding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;

            
            myHost.Credentials.UserNameAuthentication.UserNamePasswordValidationMode = System.ServiceModel.Security.UserNamePasswordValidationMode.Custom;
            myHost.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = new CustomUserNameValidator();

            myHost.AddServiceEndpoint(typeof(IServerFunktionen), tcpBinding, "net.tcp://localhost:8777/MyProdService");
            
            //Server starten
            myHost.Open();

cSharp Projekte : https://github.com/jogibear9988

J
jogibear9988 Themenstarter:in
641 Beiträge seit 2007
vor 16 Jahren
So nochmals....

Hab nun alles probiert.

Wenn man tcpBinding.Security.Message.ClientCredentialType = MessageCredentialType.UserName; auskommentier läuft er, aber zur Userathentifizierung muss dieses ja dazu!

cSharp Projekte : https://github.com/jogibear9988

100 Beiträge seit 2006
vor 16 Jahren

Ich habe genau das selbe Problem, obwohl ich wsHttpBinding statt netTCPBinding verwende.

Sogar wenn ich für die Prüffunktion


myServiceHost.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = UserNamePasswordValidator.None;

verwende, kommt es zu dieser Fehlermeldung.

In der eingebetteten Exception steht dann aber sogar der genaue Grund:


The service certificate is not provided. Specify a service certificate in ServiceCredentials.

Source: CreateServerX509TokenProvider()

Nur ich habe meines Wissens nirgends etwas eingestellt, was ein X.509-Zertifikat nötig machen würde.
Muß man dies vielleicht irgendwo explizit ausschalten oder kann man die ClientCredentials bei MessageClientCredentialType=UserName nur per Zertifikat mitgeben?

Sehr, sehr komplex die Authentifizierungsmöglichkeiten mit WCF.