Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Nástroj Windows Communication Foundation (WCF) dotnet-svcutil je nástroj .NET, který načítá metadata z webové služby v síťovém umístění nebo ze souboru WSDL a generuje třídu WCF obsahující metody proxy klienta, které přistupují k operacím webové služby.
Podobně jako u nástrojů Service Model Metadata – svcutil pro projekty rozhraní .NET Framework je nástroj dotnet-svcutil nástrojem příkazového řádku pro generování odkazu na webovou službu kompatibilní s projekty .NET.
Nástroj dotnet-svcutil je alternativní možností k poskytovateli připojené služby ve Visual Studio Odkaz na webovou službu WCF. Jako nástroj .NET je nástroj dotnet-svcutil k dispozici pro různé platformy v systémech Linux, macOS a Windows.
Důležité
Měli byste odkazovat pouze na služby z důvěryhodného zdroje. Přidání odkazů z nedůvěryhodného zdroje může ohrozit zabezpečení.
Požadavky
Začínáme
Následující příklad vás provede kroky potřebnými k přidání odkazu na webovou službu do webového projektu .NET a vyvolání služby. Vytvoříte webovou aplikaci .NET s názvem HelloSvcutil a přidáte odkaz na webovou službu, která implementuje následující kontrakt:
[ServiceContract]
public interface ISayHello
{
[OperationContract]
string Hello(string name);
}
V tomto příkladu předpokládejme, že webová služba bude hostována na následující adrese: http://contoso.com/SayHello.svc
V příkazovém okně Windows, macOS nebo Linux proveďte následující kroky:
Vytvořte adresář s názvem HelloSvcutil pro váš projekt a nastavte ho jako v následujícím příkladu:
mkdir HelloSvcutil cd HelloSvcutilPomocí následujícího příkazu v adresáři vytvořte nový webový projekt jazyka
dotnet newC#:dotnet new webdotnet-svcutilNainstalujte balíček NuGet jako nástroj rozhraní příkazového řádku:dotnet tool install --global dotnet-svcutilSpuštěním příkazu dotnet-svcutil vygenerujte referenční soubor webové služby následujícím způsobem:
dotnet-svcutil http://contoso.com/SayHello.svc
Vygenerovaný soubor se uloží jako HelloSvcutil/ServiceReference/Reference.cs. Nástroj dotnet-svcutil také přidá do projektu příslušné balíčky WCF vyžadované kódem proxy serveru jako odkazy na balíčky.
Použití odkazu na službu
Pomocí následujícího příkazu obnovte balíčky
dotnet restoreWCF:dotnet restoreVyhledejte název třídy klienta a operace, kterou chcete použít.
Reference.csbude obsahovat třídu, která dědí zSystem.ServiceModel.ClientBase, s metodami, které lze použít k volání operací ve službě. V tomto příkladu chcete volat operaci Hello služby SayHello.ServiceReference.SayHelloClientje název třídy klienta a má metodu,HelloAsynckterou lze použít k volání operace.Otevřete soubor
Startup.csv editoru a přidejte nahoře příkazusingpro obor názvů odkazu na službu:using ServiceReference;Upravte metodu
Configurepro vyvolání webové služby. Provedete to vytvořením instance třídy, která dědí zClientBasea volá metodu na objektu klienta: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); }); }Spusťte aplikaci pomocí následujícího
dotnet runpříkazu:dotnet runVe webovém prohlížeči přejděte na adresu URL uvedenou v konzole (například
http://localhost:5000).
Měl by se zobrazit následující výstup: "Hello dotnet-svcutil!"
Pro podrobný popis parametrů nástroje dotnet-svcutil použijte příkaz s parametrem nápovědy takto:
dotnet-svcutil --help
Aktualizace odkazu na službu
Pokud se webová služba změní, můžete aktualizovat odkaz na službu tak, aby odrážel tyto změny. Možnost -u aktualizuje vygenerovaný kód na základě metadat z koncového bodu služby nebo souboru WSDL.
Aktualizace existujícího odkazu na službu:
dotnet-svcutil -u ./path/to/reference/folder
Referenční složka by měla obsahovat ConnectedService.json soubor, který byl vytvořen při počátečním přidání odkazu na službu. Nástroj přečte tento konfigurační soubor, který určí koncový bod služby a znovu vygeneruje kód proxy serveru s aktualizovanými metadaty.
Zpětná vazba a dotazy
Pokud máte nějaké dotazy nebo zpětnou vazbu, otevřete problém na GitHubu. Můžete si také projít všechny existující otázky nebo problémy v úložišti WCF na GitHubu.
Poznámky k vydání
- V poznámkách k verzi najdete aktualizované informace o verzi, včetně známých problémů.