Frage

Ich habe derzeit einen WCF -Dienst mit einem Callback -Vertrag (Duplex), und wenn ich die Anwendung verwende, die sie auf meinem Computer verwendet, funktioniert alles einwandfrei. Wenn ich sie jedoch von einem anderen Computer probiere, verbindet er sich nicht.

Diese Probleme traten auf, sobald ich diese verwendet habe wsDualHttpBinding (für Rückrufe), denn als ich benutzte wsHttpBinding Alles hat gut funktioniert.

Warum akzeptiert der Webdienst keine Anfragen von anderen Computern? Ist es einige Hosting -Einstellungen, die geändert werden müssen?


In Bezug auf die Protokolle bekomme ich diese:

ALT Text http://img17.imageshack.us/img17/4628/wcfissue.jpg

Der offene Betrieb wurde innerhalb der zugewiesenen Zeitüberschreitung von 00:01:00 nicht abgeschlossen. Die Zeit, die dieser Operation zugewiesen wurde

Das öffnen system.servicemodel.channels.cliENTRELIABLEUPLEXSessionChannel

Fehlerhaftes System.Servicemodel.Channels.ClientreliableUplexSessionChannel

Fehlerhaftes System.servicemodel.Channels.servicechannel

Nicht geöffnetes System.servicemodel.channels.servicechannel


Der Port ist auf meinem Router (sowohl TCP als auch UDP) geöffnet, das ist also nicht das Problem.

In Bezug auf die Serviceattribute verwende ich dies:

Schnittstelle:

[ServiceContract(Name = "MusicRepo_DBAccess_Service", 
                 CallbackContract = typeof(IOnlineUsersCallback),
                 SessionMode=SessionMode.Required)]

Service:

[ServiceBehavior(
        ConcurrencyMode=ConcurrencyMode.Reentrant, 
        InstanceContextMode=InstanceContextMode.Single)]

Aktualisieren

In Bezug auf Orion Edwards' Post:

  • Keine Firewall
  • Siehe Punkt 1
  • Ja, ich kann, weil ich den Hafen auf meinem Router weitergeleitet habe
  • Ich benutze IIS, um den Server zu hosten.

Die Sache ist, dass dieses Problem begann, als ich wechselte wsHttpBinding (was gut funktionierte) zu wsDualHttpBinding (Weil ich Rückrufe brauchte)


Aktualisieren

Ich habe jetzt von Wechsel von wsDualHttpBinding zu NetTcpBinding Und aus irgendeinem Grund funktioniert alles gut.

Ich habe benutzt Dieser Artikel Um mir zu helfen, Hosting auf IIS einzurichten, und danken, dass alles wie erwartet funktioniert, mit Rückrufen.

War es hilfreich?

Lösung

Ich habe jetzt von Wechsel von wsDualHttpBinding zu NetTcpBinding Und aus irgendeinem Grund funktioniert alles gut.

Ich habe benutzt Dieser Artikel Um mir zu helfen, Hosting auf IIS einzurichten, und danken, dass alles wie erwartet funktioniert, mit Rückrufen.

Andere Tipps

Es würde helfen, wenn Sie die Einstellungen für Server- und Clientkonfiguration veröffentlichen.

Hier ist eine Zusammenfassung, wie das WSDualHttpBinding funktioniert Msdn (betonen meine):

Das WSDualHTTPBinding bietet die gleiche Unterstützung für Web -Service -Protokolle wie das WSHTTPBINDING, jedoch für die Verwendung mit Duplex -Verträgen. WSDUALHTTPBINDING unterstützt nur die SOAP -Sicherheit und erfordert zuverlässige Nachrichten. Diese Bindung erfordert, dass der Kunde über eine öffentliche URI verfügt, die einen Rückruf -Endpunkt für den Service bietet. Dies wird durch das Attribut clientBaseaddress bereitgestellt. Eine doppelte Bindung setzt die IP -Adresse des Clients dem Dienst aus. Der Kunde sollte die Sicherheit nutzen, um sicherzustellen, dass er nur mit Diensten verbunden ist, die er vertraut.

Diese Bindung kann verwendet werden, um durch einen oder mehrere Seifenintermediäre zuverlässig zu kommunizieren.

Standardmäßig generiert diese Bindung einen Laufzeitstapel mit WS-Reliablemessaging für Zuverlässigkeit, WS-Security für Nachrichtensicherheit und Authentifizierung, HTTP für die Nachrichtenzustellung und eine Text-/XML-Nachrichtencodierung.

Dinge zu überprüfen:

  • Windows-Firewall
  • Die Firewall Ihres Antivirenprodukts
  • Können Sie von einem Remote -Computer in den Port in den Port telnet?
  • Läuft Ihr "Server" unter dem ASP.NET -Entwicklungsserver? Dies akzeptiert nur Anfragen von Localhosts - Sie müssen den Server verwenden ServiceHost Oder hosten Sie es unter IIS.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top