Frage

UPDATE 3:
Ich habe ein Visual Studio 2008-Testprojekt und versuchte, einen Dienstverweis auf gemeinsam genutzte Site WCF-Dienst Referenz zu erzeugen und erhielt die folgenden Fehler:

  

Es gab einen Fehler beim Herunterladen   ' http: //apps.mydomain/MyService.svc '.   Fehler bei der Anforderung mit HTTP-Status   400: Bad Request. Metadaten enthält ein   Referenz, die nicht aufgelöst werden kann:   ' http: //apps.mydomain/MyService.svc '.   Inhaltstyp application / soap + xml;   charset = UTF-8 wurde nicht unterstützt durch   Bedienung    http: //apps.mydomain/MyService.svc ‘.   Die Client- und Service-Bindungen können   stimmen nicht überein. Der Remote-Server zurück   ein Fehler: (415) nicht verarbeiten kann die   Nachricht, da der Inhaltstyp   ‚Application / soap + xml; charset = UTF-8'   war nicht der Typ ‚text / xml erwartet;   charset = utf-8' .. Wenn der Dienst   in der aktuellen Lösung definiert sind, versuchen   Aufbau der Lösung und das Hinzufügen der   Dienstverweis wieder.

UPDATE 2:
@ Nick - Ich hat versucht, Ihren Vorschlag von explictly die Adresse jeden Endpunkt mit dem vollständigen Pfad jeden Server und ich immer noch das gleiche Ergebnis

.

Auch wenn ich versuche, das nuri Attribut mit der gemeinsamen genutzten Website-URL zu setzen, erhalte ich einen 400 Bad Request Fehler anstelle einem 404-Fehler.

UPDATE
Nach einigen weiteren Studien gab es einige IIS Konfigurationskonflikte zwischen http Einstellung: //apps1.mydomain und http: //apps2.mydomain und in der Lage war vorbei zu bekommen "nicht verfügbar" Server Anwendungsfehler.

Jetzt bekomme ich einen 404-Fehler, wenn ich auf die gemeinsam genutzten Website zu durchsuchen versucht ( http: //apps.mydomain ), aber ich bin auf den http durchsuchen können: //apps1.mydomain und http:. //apps2.mydomain Dienstverweis

Original Problem

Mein Unternehmen verwendet Microsoft NLB Balance Verkehr laden zwischen unserem IIS-Servern. Vor kurzem habe ich einen WCF-Dienst auf jedem IIS 6 Windows Server 2003 Standard Edition SP1-Servern bereitgestellt. Ich erhielt folgende Fehlermeldung, wenn ich auf den gemeinsamen genutzten Domain-Namen zu suchen versucht, mit IE 7:

  

Server-Anwendung nicht verfügbar Die   Web-Anwendung, die Sie versuchen,   Zugriff auf diesem Webserver ist derzeit   nicht verfügbar. Bitte drücken Sie die „Refresh“   Schaltfläche in Ihrem Web-Browser erneut zu versuchen   Ihre Anfrage.

     

Administrator Hinweis: Eine Fehlermeldung   Detaillierung, die Ursache dieses spezifischen   Anforderungsfehler kann in die gefunden werden   Anwendungsereignisprotokoll der Bahn   Server. Überprüfen Sie diesen Protokolleintrag   um herauszufinden, was diesen Fehler verursacht   auftreten.

Der Verbraucher an den http: //apps.mydomain den Dienst zu nutzen, sondern virtuelle Domäne zugeordnet http: //apps1.mydomain oder http: //apps.mydomain , http: //apps1.mydomain , http: //apps2.mydomain ):

  

Diese Sammlung enthält bereits eine   Adresse mit Schema http. Dort kann   sein höchstens eine Adresse pro Schema in   diese Sammlung.

Ich benutzte die Servicehost Klasse meine SVC-Datei anpassen eine benutzerdefinierte Service-Fabrik zu spezifizieren. Dann erstelle ich unsere eigene Fabrik durch von Servicehost erben und überschreiben, wie erforderlich.

public class MyFactory : ServiceHostFactory
{
    protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
    {
        return new ServiceHost(serviceType, baseAddresses[0]);
    }
}

<%@ ServiceHost Language="C#" Factory="MyFactory" Debug="true" Service="MyService" CodeBehind="~/App_Code/MyService.cs" %>
War es hilfreich?

Lösung

Nachdem ich einige mit unterschiedlichen Konfigurationen für meine WCF-Dienst zu experimentieren und Anwendung raubend. Ich habe einen Dienstverweis auf eine der Arbeits Service Referenzen ( http: //apps1.mydomain oder http: //apps2.mydomain ) in der konsumierenden Anwendung. Dann änderte ich die Endpunktreferenz in der Client-Konfiguration auf die gemeinsam genutzten Website WCF-Adresse Punkt ( http: //apps.mydomain ) und ich war in der Lage, den Dienst zu konsumieren und zu verwenden.

Andere Tipps

Ich habe ein Problem hatte, bevor er mit WCF und Load-Balancing, wo die Server mehrere Netzwerkkarten mit unterschiedlichen IP-Adressen und WCF hätte pic nur die erste IP-Adresse gefunden. Wir mussten explizit die IP-Adresse auf jeden Service-Definition des Servers so WCF auf den richtigen binden würde.

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