| 

.NET C# Java Javascript Exception

3
Hallo,

ich versuche mich gerade an einem WCF Dienst der mit Sessions arbeiten soll. Dazu habe ich folgendes Beispiel einmal versucht nachzustellen.

http://www.dotnetspark.com/kb/1696-per-session-instance-management-wcf-tutorial.aspx
(Das Beispiel im unteren Bereich)

Nun habe ich das Problem, dass wenn ich den SessionMode auf SessionMode:=SessionMode.Required stelle sen Dienst nicht mehr mit dem WCFTestApp aufrufen kann, da dieser Modus nicht im Binding "basicHttpBinding" unterstützt wird.

Wenn ich das aus dem Beispiel richtig verstanden habe, können die Sessions nicht im basicHttpBinding sondern erst ab dem Binding WSHttpBinding genutzt werden.
Zitat: "For another example Binding is WSHttpBinding and service is configured as session full service. It will act as Per-Call instance management service, if security and reliability of message is not enabled."

Nun wird in dem Beispiel leider nicht erwähnt wie man den Dienst so konfigueriert, dass auch WSHttpBinding unerstützt wird. In einigen Besipielen habe ich gesehen gesehen das in der web.config eingestellt werden muss welche Bindings in welcher Form unterstützt wird. Nur wie ist die Frage.

Dazu frage ich mich wie das Beispiel funktionieren kann, wenn dem Client nicht expliziet das WSHttpBinding zugewiesen wird. Merkt der Client dann anhand des Contracts dann welches Binding benötigt wird?

Später kann ich auch genaue Meldungen und Snippets nachreichen.

Framework: 4.0; Sprache VB.NET

Grüße
Slashi
News:
12.05.2011
Slashi 229 1 7
2 Antworten
3
Hi,
wsHttpBinding kannst Du in der Konfiguration des Services (web.config oder app.config) einstellen.
Wenn Du Dir etwas unsicher bist, dann kannst Du dazu das Tool SvcConfigEditor verwenden.
Den Editor kannst Du starten, wenn du einen VisualStudio Command Prompt öffnest und SvcConfigEditor eingibts.
Ich glaube, du kannst bei einem WebServiceProjekt auch direkt mit der rechten Maustaste auf dem Projekt den Editor aktivieren.
Wenn Dein Service läuft und auf wsHttpBinding eingestellt ist, dann musst der Client das gleiche Binding verwenden.
Hier nimmst Du am besten den: WcfTestClient, und rufst damit den Service auf. Wenn das geklappt hat, kannst Du dir aus dem WcfTestClient die Konfiguration für den Client kopieren. Eine einfache Standardkonfiguration wird nämlich darin erstellt.
Achtung: wsHttpBinding braucht Authentication.
Hier mal 2 Links:
http://msdn.microsoft.com/en-us/library/ff648840.aspx
http://msdn.microsoft.com/en-us/library/ff650619.aspx

Gruß Ralf
12.05.2011
ralf.hientzsch 587 6
0
Ich werde das Heute mal testen.

Eine Frage am Rande. Wie sieht es aus wenn man einen Client fern ab der .NET Welt realsieren will. Macht diese Art des Bindings dann Probleme? Vor allem der Einsatz von PHP wäre sehr interessant.

Grüße
13.05.2011
Slashi 229 1 7
4
Kleiner Hinweis: Solche Informationen, Anregungen oder weiterführende Fragen machen sich besser als Kommentar, da es ja keine echten Antworten sind ;-)
Dustin Klein 13.05.2011

Stelle deine .net-Frage jetzt!