4 Stimmen

Wie startet man einen WCF-Dienst außerhalb von Visual Studio?

Ich habe gerade einen WCF-Dienst mit dieses MSDN-Tutorial .

  • von Visual Studio aus kann ich den Dienst mit CTRL-F5 aufrufen, so dass er ausgeführt wird
  • dann kann ich meinen Console Application Client starten und den Dienst problemlos in Anspruch nehmen

Jetzt möchte ich meinen Dienst AUSSERHALB von Visual Studio starten und ihn von verschiedenen Clients nutzen lassen.

Wenn ich jedoch die Befehlszeile aufrufe und diese Datei ../bin/Debug/testService.exe ausführe, erhalte ich eine Ausnahme: " Die Eingabe hat das falsche Format ".

Ich erhalte denselben Fehler, wenn ich den Dienst veröffentliche und die veröffentlichte .exe-Datei starte.

Was übersehe ich hier? Muss ich eine Art Parameter senden, den Visual Studio sendet, damit es ausgeführt wird?

Wie kann ich meinen WCF-Dienst außerhalb von Visual Studio ausführen?

2voto

brodie Punkte 5254

Ohne Ihren Code und Ihre Konfigurationsdateien zu sehen, ist es schwierig, herauszufinden, warum dieses Problem auftritt, aber die korrekte Einrichtung eines WCF-Dienstes kann anfangs etwas schwierig sein.

Ich empfehle einen Blick auf die endpoint.TV-Screencasts über WCF und insbesondere die WCF-Dienste selbst hosten Screencast.

Sie sind leicht zu verstehen und reichen aus, um den Einstieg zu finden.

0voto

Tad Donaghe Punkte 6640

Für mich ist es am einfachsten, jemandem zu zeigen, wie man eine WCF-Anwendung aufbaut und zum Laufen bringt, damit Sie lernen können, alles manuell zu erstellen und die in VS2008 integrierten Tools zu meiden. Hier ist ein ausgezeichnetes Tutorial, das Ihnen zeigt, was zu tun ist:

WCF der manuelle Weg - der richtige Weg

Ich habe einen Artikel geschrieben, der diesen Artikel ein wenig erweitert, und zwar in meinem Blogbeitrag. Ich habe sowohl Quelldateien als auch einen Screencast beigefügt. Sie können ihn hier finden:

Handbuch WCF - Eine Erweiterung

Eine ausgezeichnete Reihe von Tutorials finden Sie auch in Michele Bustamantes WCF lernen . Es ist etwas veraltet und konzentriert sich auf .NET 3.0, aber die meisten Beispiele funktionieren immer noch und sie hat ihren Quellcode in ihrem Blog aktualisiert.

0voto

alansiqueira27 Punkte 7373
Uri baseAddress = new Uri("http://localhost:8080/hello");

// Create the ServiceHost.
using (ServiceHost host = new ServiceHost(typeof(HelloWorldService), baseAddress))
{
    // Enable metadata publishing.
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
    smb.HttpGetEnabled = true;
    smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
    host.Description.Behaviors.Add(smb);

    // Open the ServiceHost to start listening for messages. Since
    // no endpoints are explicitly configured, the runtime will create
    // one endpoint per base address for each service contract implemented
    // by the service.
    host.Open();

    Console.WriteLine("The service is ready at {0}", baseAddress);
    Console.WriteLine("Press <Enter> to stop the service.");
    Console.ReadLine();

    // Close the ServiceHost.
    host.Close();
}

http://msdn.microsoft.com/en-us/library/ms731758%28v=vs.110%29.aspx

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X