Freigeben über


WCF-Tool „dotnet-svcutil“ für .NET Core

Das dotnet-svcutil-Tool der Windows Communication Foundation (WCF) ist ein .NET-Tool, das Metadaten von einem Webdienst aus einem Netzwerkspeicherort oder einer WSDL-Datei abruft und eine WCF-Klasse mit Clientproxymethoden generiert, die auf Webdienstvorgänge zugreifen.

Ähnlich wie das Service Model Metadata - svcutil-Tool für .NET Framework-Projekte ist dotnet-svcutil ein Befehlszeilentool zum Generieren eines Webdienstverweises, der mit .NET Core- und .NET Standard-Projekten kompatibel ist.

Das Tool dotnet-svcutil ist eine alternative Option zum mit Visual Studio verbundenen Dienstanbieter WCF Web Service Reference, der zuerst in Visual Studio 2017 Version15.5 enthalten war. Das .NET-Tool dotnet-svcutil ist plattformübergreifend für Linux, macOS und Windows verfügbar.

Wichtig

Sie sollten nur auf Dienste aus einer vertrauenswürdigen Quelle verweisen. Wenn Sie Verweise aus nicht vertrauenswürdigen Quellen hinzufügen, hat das möglicherweise Auswirkungen auf die Sicherheit.

Voraussetzungen

Erste Schritte

Das folgende Beispiel führt Sie durch die erforderlichen Schritte zum Hinzufügen eines Webdienstverweises zu einem .NET Core- Webprojekt und Aufrufen des Diensts. Sie erstellen eine .NET Core-Webanwendung mit dem Namen HelloSvcutil und fügen einen Verweis auf einen Webdienst hinzu, der folgenden Vertrag implementiert:

[ServiceContract]
public interface ISayHello
{
    [OperationContract]
    string Hello(string name);
}

In diesem Beispiel wird angenommen, dass der Webdienst unter folgender Adresse gehostet wird: http://contoso.com/SayHello.svc.

Führen Sie in einem Windows-, macOS- oder Linux-Befehlsfenster die folgenden Schritte aus:

  1. Erstellen Sie ein Verzeichnis mit dem Namen HelloSvcutil für das Projekt, und machen Sie es zu Ihrem aktuellen Verzeichnis, wie im folgenden Beispiel:

    mkdir HelloSvcutil
    cd HelloSvcutil
    
  2. Erstellen Sie mithilfe des dotnet new-Befehls wie folgt ein neues C#-Webprojekt in diesem Verzeichnis:

    dotnet new web
    
  3. Installieren Sie das dotnet-svcutil NuGet-Paket als CLI-Tool:

    dotnet tool install --global dotnet-svcutil
    
  4. Führen Sie den Befehl dotnet-svcutil aus, um die Webdienstverweisdatei zu generieren:

    dotnet-svcutil http://contoso.com/SayHello.svc
    

Die generierte Datei wird als HelloSvcutil/ServiceReference/Reference.cs gespeichert. Das dotnet-svcutil-Tool fügt dem Projekt auch die entsprechenden WCF-Pakete hinzu, die der Proxycode als Paketverweise benötigt.

Verwenden des Dienstverweisnamens

  1. Stellen Sie wie folgt die WCF-Pakete mithilfe des dotnet restore-Befehls wieder her:

    dotnet restore
    
  2. Suchen Sie den Namen der Clientklasse und den Vorgang, den Sie verwenden möchten. Reference.cs enthält eine Klasse, die von System.ServiceModel.ClientBase erbt, mit Methoden, die zum Aufrufen von Vorgängen für den Dienst verwendet werden können. In diesem Beispiel rufen Sie den Vorgang SayHello des Diensts Hello auf. ServiceReference.SayHelloClient ist der Name der Clientklasse und hat eine Methode HelloAsync aufgerufen, die verwendet werden kann, um den Vorgang aufzurufen.

  3. Öffnen Sie die Startup.cs-Datei in einem Editor, und fügen Sie eine using-Anweisung für den Dienstverweisnamespace oben hinzu:

    using ServiceReference;
    
  4. Bearbeiten Sie die Configure-Methode zum Aufrufen des Webdiensts. Hierzu erstellen Sie eine Instanz der Klasse, die von ClientBase erbt, und rufen die Methode für das Clientobjekt auf:

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
    
        app.Run(async (context) =>
        {
            var client = new SayHelloClient();
            var response = await client.HelloAsync();
            await context.Response.WriteAsync(response);
        });
    }
    
    
  5. Führen Sie die Anwendung wie folgt mithilfe des dotnet run-Befehls aus:

    dotnet run
    
  6. Navigieren Sie in Ihrem Webbrowser zu der URL, die in der Konsole aufgelistet ist, (z.B. http://localhost:5000).

Die folgende Ausgabe wird angezeigt: „Hello dotnet-svcutil!“

Um eine ausführliche Beschreibung der Parameter des dotnet-svcutil-Tools zu erhalten, rufen Sie das Tool wie folgt mit Übergabe des Hilfeparameters auf:

dotnet-svcutil --help

Feedback und Fragen

Wenn Sie Fragen haben oder uns Feedback geben möchten, öffnen Sie ein Problem auf GitHub. Sie können außerdem bereits vorhandene Fragen oder Probleme im WCF-Repository auf GitHub überprüfen.

Anmerkungen zu diesem Release

Information