Frage

Wir haben ein paar Web-Server-Load-Balancer. Maschinen IIS6 laufen auf Port 81. Äußerlich Seite ist Port 80. Externer Name und der Name der Maschine zugänglich mit unterschiedlich sind.

Wir bekommen

System.ServiceModel.EndpointNotFoundException: The message with To '<url>' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree.

Relevante Teil web.config ist:

  <endpoint binding="ws2007HttpBinding" bindingConfiguration="MyServiceBinding"
    contract="MyService.IMyService" listenUriMode="Explicit" />

Wir haben versucht, das Hinzufügen nuri, aber das hat nicht unsere Probleme zu lösen.

Irgendwelche Ideen?

War es hilfreich?

Lösung

[ServiceBehavior(AddressFilterMode=AddressFilterMode.Any)]

Setzen Sie dieses Attribut auf Service löst das Problem.

Andere Tipps

Was ist die spezifische Load Balancer? Mit Hilfe eines F5 BIG-IP wir haben es ziemlich leicht zu arbeiten, aber wir wurden mit dem gleichen Port und (relativ) uri auf der NLB als einzelne Maschinen (so können wir eine einzelne Maschine die gleiche wie die Farm behandeln, wenn wir wählen). Offensichtlich jede Maschine hat einen anderen Namen, aber das Setup ermöglicht es Ihnen auch einzelne Server testen, indem Sie den Host-Spoofing - zum Beispiel durch die Bearbeitung Ihrer HOSTS-zu-Punkt-Datei [Ihr Farmname] auf [Test-Server IP]

.

Der größte Schmerz, den wir hatten, war SSL; TransportWithMessageCredential Sicherheit verwenden, WCF verweigert eingehende HTTP-Verbindungen - also mussten wir die NLB einzurichten erneut verschlüsseln zwischen dem NLB und dem Server-Knoten -. Aber kein großes Problem

Das einzige andere Problem, das wir hatten, war mit WCF innerhalb IIS-Hosting und WCF nicht in der Lage richtig zu dem beabsichtigten Standort zu identifizieren (obwohl IIS in Ordnung war) über http (aber fein über https). Um dies zu beheben ich ein benutzerdefiniertes Werk geschrieben, die einfach komplett ignoriert http (hörte nur auf https) - die mit den TransportWithMessageCredential Anforderungen in fein säuberlich ohnehin bindet, so war ich nicht durch diese gestört

.

Ich frage mich, wenn Sie nicht mehr Freude bekommen würden durch Hosting auf einem Standard-Port, sondern als eine andere Stelle (IP / Host-Header / etc).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top