Ich habe derzeit einen WCF-Dienst mit einem CallBack-Vertrag (duplex), und wenn ich die Anwendung, die es auf meinem Computer verwendet alles funktioniert gut, aber wenn ich es von einem anderen Computer versuchen, es verbindet nicht.
Diese Probleme traten auf, als ich auf die Verwendung dieser wsDualHttpBinding
(für Rückrufe), weil ich bei der Verwendung von wsHttpBinding
hat alles gut funktioniert.
Warum nimmt der Webdienst keine Anfragen von anderen Computern an? Müssen einige Hosting-Einstellungen geändert werden?
Was die Protokolle betrifft, so erhalte ich diese:
Alt-Text http://img17.imageshack.us/img17/4628/wcfissue.jpg
Der Öffnungsvorgang wurde nicht abgeschlossen innerhalb der zugewiesenen Zeitspanne von 00:01:00. Die für diesen Vorgang vorgesehene Zeit Operation zugewiesene Zeit war möglicherweise ein Teil einer längeren Zeitüberschreitung
System.ServiceModel.Channels.ClientReliableDuplexSessionChannel konnte nicht geöffnet werden
Fehlerhaft System.ServiceModel.Channels.ClientReliableDuplexSessionChannel
Fehlerhaft System.ServiceModel.Channels.ServiceChannel
Öffnen fehlgeschlagen System.ServiceModel.Channels.ServiceChannel
Der Port ist auf meinem Router offen (sowohl TCP als auch UDP), also ist das nicht das Problem.
Was die Service-Attribute angeht, so verwende ich Folgendes:
Schnittstelle:
[ServiceContract(Name = "MusicRepo_DBAccess_Service",
CallbackContract = typeof(IOnlineUsersCallback),
SessionMode=SessionMode.Required)]
Dienst:
[ServiceBehavior(
ConcurrencyMode=ConcurrencyMode.Reentrant,
InstanceContextMode=InstanceContextMode.Single)]
[Update]
Hinsichtlich Orion Edwards ' post:
- Keine Firewall
- Siehe Punkt 1
- Ja, ich kann, weil ich den Port auf meinem Router weitergeleitet habe.
- Ich verwende IIS, um den Server zu hosten.
Die Sache ist die, dass dieses Problem auftrat, als ich von wsHttpBinding
(die einwandfrei funktionierte) zu wsDualHttpBinding
(weil ich Rückrufe brauchte)
[Update]
Ich bin jetzt umgestiegen von wsDualHttpBinding
a NetTcpBinding
und aus irgendeinem Grund funktioniert alles einwandfrei.
Ich habe verwendet dieser Artikel zu helfen, mich einrichten Hosting auf IIS, und thankully alles funktioniert wie erwartet, mit Rückrufe.