IMetadataExchange MEX-Endpunkt-Fehler beim hosten von WCF-service-Konsole-Anwendung

Ich habe einen WCF-service. Ich versuche, den Dienst host in einer Konsolenanwendung.

Ich bin nach allen Richtungen hier.

Nun alles kompiliert problemlos, aber ich bekomme eine exception zur Laufzeit.

Den Vertrag name 'IMetadataExchange' konnte nicht gefunden werden in der Liste der Verträge durch den Dienst implementiert Indexer. Fügen Sie ein ServiceMetadataBehavior, um die Konfiguration Datei oder das ServiceHost-Objekt direkt zu aktivieren der Unterstützung für diesen Vertrag.

Nun in der Richtung, ich bin beauftragt, hinzufügen

<endpoint binding="mexHttpBinding" bindingConfiguration=""
name="http://localhost:8080/myservice/MEX/" contract="IMetadataExchange" />

Habe ich nicht IMetadataExchange irgendwo in meinem WCF-service oder der host-Konsole-Anwendung.

Wo kommt die exception her? Gibt es eine Referenz, die ich bin fehlt?

Dies ist meine Konsole Programm

namespace WcfConsoleHost
{
    class Program
    {
        static void Main(string[] args)
        {
            Type type = typeof(myservice);
            using (ServiceHost host = new ServiceHost(type))
            {

                host.Open();
                Console.WriteLine("The service is available. Press any key...");
                Console.ReadKey();
                host.Close();
            }
        }
    }
}

Meinem WCF-service hat eine Schnittstelle mit den Verträgen und dann die implemetation in der Klasse myservice.

Unten ist meine gesamte app.config.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="ServiceBehavior">
                    <serviceMetadata />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service name="myservice">
                <endpoint address="http://localhost:8080/myservice/"
                 binding="basicHttpBinding"
                    bindingConfiguration="" contract="myservice.Ims" />
                <endpoint binding="mexHttpBinding" bindingConfiguration=""
                 address="http://localhost:8080/myservice/MEX/"
                    contract="IMetadataExchange" />
            </service>
        </services>
    </system.serviceModel>
</configuration>

InformationsquelleAutor Matt | 2009-08-21

Schreibe einen Kommentar