Sdílet prostřednictvím


Řešení potíží s kurzy Začínáme se službou Windows Communication Foundation

Tento článek obsahuje řešení nejběžnějších problémů a chyb, se kterými se můžete setkat při použití kroků v kurzu Začínáme s aplikacemi Windows Communication Foundation.

Běžné problémy

Nemůžu najít soubory projektu na pevném disku.

Visual Studio ukládá soubory projektu do složky C:\Users\<uživatelské jméno>\zdroj\repos.

Nemůžu najít soubor App.config vygenerovaný Svcutil.exe.

V sadě Visual Studio se v okně Přidat existující položku ve výchozím nastavení zobrazují jenom soubory s následujícími příponami:

  • .Cs
  • .resx
  • .Nastavení
  • .Xsd
  • .Wsdl

Pokud chcete zobrazit všechny typy souborů, vyberte v rozevíracím seznamu v pravém dolním rohu okna Přidat existující položkumožnost Všechny soubory (*.*).

Běžné chyby

Kompilace aplikace služby

Chyba BC30420 Sub Main nebyla v GettingStartedHost.Module1 nalezena.

Vstupní bod je nesprávný pro aplikaci jazyka Visual Basic. Proveďte následující změnu:

  1. V okně Průzkumník řešení vyberte složku GettingStartedHost a pak v místní nabídce vyberte Vlastnosti. a. V okně GettingStartedHost jako Spouštěcí objekt vyberte ze seznamu Service.Program (nebo vstupní bod pro vaši konkrétní aplikaci). b. V hlavní nabídce vyberte Soubor>Uložit vše.

Spuštění aplikace služby

Protokol HTTP nemohl zaregistrovat adresu URL .http://+:8000/GettingStarted/CalculatorService Váš proces nemá přístupová práva k tomuto oboru názvů.

Pokud chcete získat správný přístup, spusťte proces hostující službu Windows Communication Foundation (WCF) s oprávněními správce:

  • Visual Studio: V nabídce Start vyberte program Visual Studio a pak v místní nabídce vyberte Další možnosti>Spustit jako správce .
  • Pro okno konzoly: V nabídce Start vyberte Příkazový řádek a pak v místní nabídce vyberte Další možnosti>Spustit jako správce.
  • Průzkumník Windows: Vyberte spustitelný soubor a pak v místní nabídce vyberte Spustit jako správce .

Kompilace klientské aplikace

CalculatorClient neobsahuje definici pro "<název> metody" a nebyla nalezena žádná rozšiřující metoda "<název> metody", která přijímá první argument typu CalculatorClient (chybí vám direktiva using nebo odkaz na sestavení?).

Veřejně jsou zpřístupněny pouze metody, které označíte atributem ServiceOperationAttribute . Pokud vynecháte ServiceOperationAttribute atribut z metody v ICalculator rozhraní, během kompilace se zobrazí tato chybová zpráva.

Nelze najít název typu nebo oboru názvů CalculatorClient (chybí vám direktiva using nebo odkaz na sestavení?).

Tato chyba se zobrazí, pokud do klientského projektu nepřidáte soubor generatedProxy.cs (nebo generatedProxy.vb), když jste ho vygenerovali pomocí nástrojeSvcutil.exe .

Spuštění klientské aplikace

Neošetřená výjimka: System.ServiceModel.EndpointNotFoundException: Nepodařilo se připojit k .http://localhost:8000/GettingStarted/CalculatorService Kód chyby PROTOKOLU TCP 10061: Nelze vytvořit žádné připojení, protože cílový počítač ho aktivně odmítl.

K této chybě dochází, pokud spustíte klientskou aplikaci bez spuštění služby. Nejprve spusťte hostitelskou aplikaci, aby se služba spustila, a pak spusťte klientskou aplikaci.

Použití nástroje Svcutil.exe

Svcutil není rozpoznán jako interní nebo externí příkaz, spustitelný program nebo dávkový soubor.

Svcutil.exe musí být v systémové cestě. Nejjednodušším řešením je použít příkazový řádek sady Visual Studio. V nabídce Start vyberte adresář verze> sady Visual Studio a pak vyberte Developer Command Prompt pro verzi sady Visual Studio <<.> Tento příkazový řádek nastaví systémovou cestu na správná umístění pro všechny nástroje dodávané jako součást sady Visual Studio.

Spuštění služby a klientských aplikací

System.ServiceModel.Security.SecurityNegotiationException: Vyjednávání zabezpečení SOAP s objektem prohttp://localhost:8000/GettingStarted/CalculatorService cíl sehttp://localhost:8000/GettingStarted/CalculatorService nezdařilo.

K této chybě dochází na počítači připojeném k doméně, který nemá připojení k síti. Připojte počítač k síti nebo vypněte zabezpečení služby i klienta.

Vypnutí zabezpečení:

  • Pro službu nahraďte kód, který vytvoří WSHttpBinding , následujícím kódem:

    // Step 3: Add a service endpoint.
    selfhost.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(SecurityMode.None), "CalculatorService");  
    
  • V případě klienta aktualizujte <v konfiguračním souboru element zabezpečení> v elementu <binding> následujícím způsobem:

    <binding name="WSHttpBinding_ICalculator">
      <security mode="None" />
    </binding>
    

Viz také

Začínáme s aplikacemi WCF
Rychlý start pro řešení potíží s WCF
Řešení potíží s nastavením