Announcement

Collapse
No announcement yet.

Exception bei der Verbindung Client-->Server

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Exception bei der Verbindung Client-->Server

    [edit = gfoidl] Siehe auch http://entwickler-forum.de/showthread.php?t=57194 [/edit]


    hallo,

    ich möchte eine Callback-Funktion bzw. Duplex Eingenschaften bei WCF mal testen. Das Programm lief lokal ohne Problem und habe dabei auch die Prinzipien verstanden. Ich könnte aus dem WCFHost einen Service-Verwies in Client hinzufügen, in dem ich als Adresse: http://localhost:Port/myFile.svc bzw. http://myIpAdress:Port/myFile.svcangebe.
    Die Beide Variante funktionieren lokal ohne Problem. Soweit ist gut.

    Aber es funktioniert nicht, wenn ich die letztere Variante auf den zweiten Rechner kopieren (ich kopiere die ganze bin/Release Ordnerinhalte) und testen möchte.

    Die erhaltene Fehlermeldung (siehe im Anhang) ist:
    Unbehandelte Ausnahme: System.ServiceModel.Security.SecurityNegotiationEx ception
    : Der Server hat die Clientanmeldeinformationen zurückgewiesen. ---> System.Secu
    rity.Authentication.InvalidCredentialException: Der Server hat die Clientanmelde
    informationen zurückgewiesen. ---> System.ComponentModel.Win32Exception: Der Anm
    eldeversuch ist fehlgeschlagen


    oder die ganzen Stacktraceinhalte sieht man im Anhang.

    Könntet Ihr mal bitte dabei helfen, was ich dazu noch machen sollte? oder was ich dabei falsch gemacht habe?

    vielen Dank.

    Burkut
    Attached Files
    Zuletzt editiert von gfoidl; 08.09.2009, 18:38. Reason: Moderation

  • #2
    Hallo burkut,

    das schaut ganz nach Firewall oder Rechteprobleme auf dem Zielrechner aus.

    Sind in der Firewall die Ports geöffnet über die WCF die Daten austauscht (die Port-Nr solltest du in der Konfig-Datei angegeben haben).

    Weiters sollte in der Konfig des Clients der Security-Mode und die Identity des Users angegeben werden (oder im Programm gesetzt). ZB
    [highlight=xml]
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <system.serviceModel>
    <bindings>
    <wsDualHttpBinding>
    <!--
    Configure a binding that support duplex communication.
    Es wurde die clientBaseAddress gesetzt.
    -->
    <binding name="CalculatorDupex_HTTP"
    clientBaseAddress="http://localhost:8088/CalculatorDuplexClient/">
    <security mode="Message">
    <message clientCredentialType="Windows"
    negotiateServiceCredential="true"
    algorithmSuite="Default" />
    </security>
    </binding>
    </wsDualHttpBinding>
    </bindings>
    <client>
    <endpoint address="http://localhost:8085/"
    binding="wsDualHttpBinding"
    bindingConfiguration="CalculatorDupex_HTTP"
    contract="CalculatorService.ICalculatorDuplex"
    name="CalculatorDupex_HTTP">
    <identity>
    <userPrincipalName value="GMFKORPORAL\gfoidl" />
    </identity>
    </endpoint>
    <endpoint address="net.tcp://localhost:8086/"
    binding="netTcpBinding"
    contract="CalculatorService.ICalculatorDuplex"
    name="CalculatorDupex_TCP">
    <identity>
    <userPrincipalName value="GMFKORPORAL\gfoidl" />
    </identity>
    </endpoint>
    </client>
    </system.serviceModel>
    </configuration>
    [/highlight]


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      hallo Gü,

      leider die von dir vorgeschlagenen Änderungen haben nichts gebracht. Vielleicht habe ich da wieder was falsch gemacht. Könntest du dir bitte noch mal meine Configs anschauen?(siehe Anhang)

      vielen Dank für deine geduldige Hilfe.

      nebenbei noch ne Frage: wie erzeugt man gewöhnlich solche Konfig files? autmatisch oder manuell?

      Gruss


      Burkut
      Attached Files

      Comment


      • #4
        wie erzeugt man gewöhnlich solche Konfig files? autmatisch oder manuell?
        Die Konfig die ich oben gepostet habe habe ich noch zu Lernzwecken getippt. Sonst lasse ich sie auf Clientsite aber per Dienstverweis erzeugen. Auch deshalb weil dann ein Proxy erstellt wird und die Arbeit mit dem Service viel handlicher ist als wenn ich die Channels verwenden muss.


        Schau mir gerade die Konfigs an.....hab nichts unauffälliges gefunden.

        Probier mal mit deaktivierten Firewalls auf beiden Rechner. Wenns dann geht wars ein Port-Problem. Wenn nicht vermute aber immer noch dass es ein Benutzerverwaltungsproblem ist also ob es die in der Konfig angegeben Benutzer auch in der Domäne/Workgroup gibt.


        mfG Gü
        Zuletzt editiert von gfoidl; 02.09.2009, 10:12.
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Originally posted by gfoidl View Post
          Probier mal mit deaktivierten Firewalls auf beiden Rechner. Wenns dann geht wars ein Port-Problem. Wenn nicht vermute aber immer noch dass es ein Benutzerverwaltungsproblem ist also ob es die in der Konfig angegeben Benutzer auch in der Domäne/Workgroup gibt.
          mfG Gü
          ich habe die beiden Variante versucht, es ist immer noch ruhig(Also diesmal gab es keine Ausnahme aus). Also Deaktivierte Firewalls und die Anpassung der Benutzer in der Domäne/Workgroup .... usw.

          Bei der Port-Freigabe erscheint es da: Port name, Port Nr und Protokoll (TCP oder UDP), Da ich in meinem Konfig WsDualHttpbing benutze, was sollt ich hier wählen? ich meine TCP oder UDP?
          sollte diese Portfreigabe im Server sein oder?

          sollte es noch im Client Rechner .Net Framwork installiert sein?

          Gruss

          Burkut

          Comment


          • #6
            WsDualHttpbing benutze, was sollt ich hier wählen? ich meine TCP oder UDP?
            sollte diese Portfreigabe im Server sein oder?
            HTTP liegt im OSI-Schichtenmodell über TCP -> daher TCP.

            Bei WCF hast du Client und Server. Diese kommuniziren über die Ports welche in der Konfig angegeben sind (client- und serverseitig). Je nach Firewall müssen ein- und ausgehende Ports freigegeben werden.


            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Hallo Gü,

              Ich habe alle mögliche Änderungen bezüglich Ports (8085---8088) in Firewall in beiden Rechner vorgenommen, jetzt sind alle frei in beiden Rechern. UserprincipalName Value=ComputerName/Nutzer richtig eingesetzt. Hmm Ich habe leider nicht hin gekriegt. Deswegen möchte ich dich darum bitten, ob du dir "mein Programm" oder "mein angepasstes Parogramm" (im Anhang) nochmal anschauen könntest. Vielen Vielen Dank.

              PS: Alle Client-Variante lief bei mir lokal ohne Problem. Nur es geht nicht im Netzwerk.

              Vielen Dank im voraus.


              Gruss

              Burkut
              Attached Files
              Zuletzt editiert von burkut; 02.09.2009, 16:57.

              Comment


              • #8
                ob du dir mein Programm(im Anhang)
                Mich errinnert der Code und die Kommentare eher an mein Programm das ich irgendwo mal veröffentlich habe und das auch von einer anderen Quelle inspiriert wurde. Du musst aufpassen was du als Dein und Mein bezeichnest. Vor allem wenn sich so offensichtlich um eine Plagiat handelt.

                Aber zum Problem. Es ist ja das selbe was beim mir läuft (hab ich vormittags nochmals probiert). Das Problem liegt irgendwo bei den Rechten (wie in der Fehlermeldung angegeben). Sorry mehr kann ich nicht helfen.

                Edit: Vielleicht liegst daran dass in den Konfigs noch mein Benutzername eingetragen ist und ich bin wahrscheinlich kein Mitglied deiner Domäne

                mfG Gü
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment


                • #9
                  Originally posted by gfoidl View Post
                  Mich errinnert der Code und die Kommentare eher an mein Programm das ich irgendwo mal veröffentlich habe und das auch von einer anderen Quelle inspiriert wurde. Du musst aufpassen was du als Dein und Mein bezeichnest. Vor allem wenn sich so offensichtlich um eine Plagiat handelt.
                  das ist ja klar. Das Programmstück habe ich von dir empfohlen bekommen (siehe http://entwickler-forum.de/showthread.php?t=57194 ). Ich habe ja nirgends dies veröffentlicht. kann ich auch nicht. kannst du sicher sein. ich bin wie du siehst am Lernen.
                  es sind die verschiedene Variante "meiner Programme" zum Testzwecke, weil es die Originale bis jetzt nicht zweckmässig funktionierte. Bitte verstehe mich nicht falsch und sei sicher bitte, es handelt sich nicht um ein Palgiat.....

                  Na gut, ich schaue mir mal, dass alles wieder neu an. vielen Dank für deine Tipps.

                  Grüss

                  burkut
                  Zuletzt editiert von burkut; 02.09.2009, 16:52.

                  Comment


                  • #10
                    Ich habe ja nirgends dies veröffentlicht.
                    Vergesslich Guck mal dein eigenes Posting von 14:37. Das hier ist ein öffentliches Forum. Alles was man hier schreibt würde ich mal als veröffentlichen bezeichnen.

                    Comment


                    • #11
                      Ich weiß. Es soll ja nur der Hinweis sein dass aufgepasst werden muss. Geistiges Eigentum kann nämlich nicht übertragen werden. Auch wenn ich im Forum viel von meinem geistigen Eigentum gratis hergebe so sollte wenigstens die Werkschöpfung (gem. Urheberrechtsgesetz) dem Urheber zugesprochen werden

                      Es kann abere andere geben die da rechtliche Schritte einleiten und das könnte teuer werden. Die Geschichte eine Softwaregigante ist geprägt davon

                      mfG Gü
                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                      Comment


                      • #12
                        ich habe meine Posting von 14:37 geändert. seid Ihr zufrieden. wenn nicht lösche ich es dann habe ich meine Ruhe.....

                        Comment


                        • #13
                          Originally posted by burkut
                          ich bin wie du siehst am Lernen.
                          Nochmals: Es ist kein böse Absicht dahinter wenn ich das schreibe sondern ein Hinweis für dich damit du was lernen kannst. Ich werde dich nicht verklagen oder sonst was.

                          Aber es gibt Situationen in denne könnte das schief gehen und deshalb hab ich dich darauf hingewiesen.


                          Ich will in Folge keine Diskussion mehr darüber haben denn dies hat mit dem eigentlichen Thema nichts zu tun.


                          mfG Gü
                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                          Comment

                          Working...
                          X