hallo leute,
bin neu auf dem Gebiet WCF... habe so einige tutorials durchgearbeitet, aber so recht mag es nicht funktionieren.
ich habe einen server, der mir verschiedenste datentype zurückgeben soll. dies funktioniert auch - solange ich einen localhost angebe.
will ich jedoch einen anderen pc als server angeben, so wirft er eine SecurityNegotiationException.
Hier mal mein testserver
using (ServiceHost host = new ServiceHost(typeof(WcfHost)))
{
Uri baseAdress = new Uri("net.tcp://bt-fs1:12345/IGT_Network");
NetTcpBinding binding = new NetTcpBinding();
host.AddServiceEndpoint(typeof(IWcfHost), binding, baseAdress);
host.Open();
Console.WriteLine("Host-Service started... Press any key to exit!");
Console.ReadKey();
host.Close();
}
hier der testclient
Uri baseAdress = new Uri("net.tcp://bt-fs1:12345/IGT_Network");
EndpointAddress address = new EndpointAddress(baseAdress);
NetTcpBinding binding = new NetTcpBinding();
ChannelFactory<IWcfHost> factory = new ChannelFactory<IWcfHost>(binding, address);
host = factory.CreateChannel();
host.Echo(baseAdress.Host + ":" + baseAdress.Port);
Console.WriteLine("Please enter some words:");
Console.WriteLine(host.Echo(Console.ReadLine()));
Console.WriteLine(host.Sum(5, 8));
beim Server habe ich auch schon in der cmd nachgesehen, ob der Port auf abhören steht... da passt alles.
bitte um hilfe
lg deisi
Hallo deisi,
SecurityNegotiationException
Hast du da in Verbindung mit TCP-Binding mal gegoogelt?
Gib bei der Binding den entsprechenden SecurityMode
an und dann klappt es (z.B. None).
Dass die Firewall hier nichts block hast du ja getestet und außerdem wäre dann die Fehlermeldung anders.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Guten Morgen,
Habe meinen Server jetzt fertig eingerichtet, aber wenn ich vom Client eine Verbindung herstellen möchte, dann kommt eine System.ServiceModel.FaultException.
System.ServiceModel.FaultException: Der Server konnte die Anforderung aufgrund eines internen Fehlers nicht verarbeiten. Wenn Sie weitere Informationen zum Fehler erhalten möchten, aktivieren Sie entweder IncludeExceptionDetailInFaults (über das ServiceBehaviorAttribute oder das <serviceDebug>-Konfigurationsverhalten) für den Client, um die Ausnahmeinformationen zurück an den Server zu senden, oder aktivieren Sie die Ablaufverfolgung gemäß der Microsoft .NET Framework SDK-Dokumentation, und überprüfen Sie die Serverablaufverfolgungsprotokolle.
Fehlermeldung:
Server stack trace:
bei System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
bei System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
bei System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
bei System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
bei System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)Exception rethrown at [0]:
bei System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
bei System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
bei Server.IWcfHost.Start(String Clientname)
bei Roboter_2.MainForm..ctor() in C:\Users\messmann.FAHRZEUGTECHNIK\Documents\Visual Studio 2015\Projects\IGT_Network\Roboter 2\MainForm.cs:Zeile 48.
Zur Kontrolle rufe ich beim Server alle paar Sekunden den ConnectionState ab... der ist eigentlich auf "Opened"
Habe außerdem keine Ahnung, wo ich diese ServiceBehaviorAttribute finden kann...
mfg
Habe außerdem keine Ahnung, wo ich diese ServiceBehaviorAttribute finden kann...mfg
Ach, komm schon. Erster Treffer Google-Suche nach "ServiceBehaviorAttribute": ServiceBehaviorAttribute-Klasse
Da ist unten sogar ein Codebeispiel.
LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
Hallo deisi,
oder aktivieren Sie die Ablaufverfolgung
Das wäre die passendere Option, da du so mehr über die Fehler in der Trace-Datei erfahren kannst.
Da du den Server -- lt. Code oben -- selbst hostet, so kannst du den auch mit dem Debugger laufen lassen und so noch einfacher die Ursache für den Fehler finden.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"