Megosztás:


A Windows Communication Foundation használatának első lépéseit ismertető oktatóanyagok hibaelhárítása

Ez a cikk megoldásokat kínál azokra a leggyakoribb problémákra és hibákra, amelyek a Windows Communication Foundation-alkalmazások használatának első lépéseit követve felmerülhetnek.

Gyakori problémák

Nem találom a projektfájlokat a merevlemezemen.

A Visual Studio a C:\Users\felhasználónév>\<source\repos mappába menti a projektfájlokat.

Nem találom a Svcutil.exe által létrehozott App.configfájlt.

A Visual Studióban a Meglévő elem hozzáadása ablak alapértelmezés szerint csak a következő kiterjesztésű fájlokat jeleníti meg:

  • .Cs
  • .resx
  • .Beállítások
  • .Xsd
  • .Wsdl

Az összes fájltípus megjelenítéséhez válassza a Minden fájl (*.*) lehetőséget a Meglévő elem hozzáadása ablak jobb alsó sarkában található legördülő listában.

Gyakori hibák

A szolgáltatásalkalmazás fordítása

A BC30420 "Sub Main" hiba nem található a GettingStartedHost.Module1 modulban.

A belépési pont helytelen a Visual Basic alkalmazáshoz. Végezze el a következő módosítást:

  1. Az Megoldáskezelő ablakban válassza a GettingStartedHost mappát, majd a helyi menü Tulajdonságok elemét. a. A GettingStartedHost ablakban az Indítási objektum területen válassza a Service.Program elemet (vagy az adott alkalmazás belépési pontját) a listából. b. A főmenüben válassza azÖsszes fájl> mentése lehetőséget.

A szolgáltatásalkalmazás futtatása

A HTTP nem tudta regisztrálni a(z) ""http://+:8000/GettingStarted/CalculatorService URL-címet. A folyamat nem rendelkezik hozzáférési jogosultságokkal ehhez a névtérhez.

A megfelelő hozzáférés érdekében indítsa el a Windows Communication Foundation (WCF) szolgáltatást rendszergazdai jogosultságokkal üzemeltető folyamatot:

  • Visual Studio esetén: Válassza ki a Visual Studio programot a Start menüben, majd a helyi menüben válassza a További>futtatás rendszergazdaként lehetőséget.
  • Konzolablak esetén: Válassza a Parancssor lehetőséget a Start menüben, majd a helyi menüBenválassza a További >futtatás rendszergazdaként lehetőséget.
  • Windows Explorer esetén: Válassza ki a végrehajtható fájlt, majd a helyi menüben válassza a Futtatás rendszergazdaként lehetőséget.

Az ügyfélalkalmazás fordítása

A CalculatorClient nem tartalmaz "<metódusnév>" definíciót, és nem található a "CalculatorClient" típusú első argumentumot elfogadó "metódusnév>"< bővítménymetódus (hiányzik egy using direktíva vagy egy szerelvényhivatkozás?)

Csak azok a metódusok lesznek nyilvánosan közzétéve, amelyeket az ServiceOperationAttribute attribútummal jelöl meg. Ha kihagyja az ServiceOperationAttribute attribútumot egy metódusból a felületen, ez a hibaüzenet jelenik meg a ICalculator fordítás során.

A "CalculatorClient" típus- vagy névtérnév nem található (hiányzik egy using direktíva vagy egy szerelvényhivatkozás?)

Ez a hibaüzenet akkor jelenik meg, ha nem adja hozzá a generatedProxy.cs (vagy generatedProxy.vb) fájlt az ügyfélprojekthez, amikor az Svcutil.exe eszközzel létrehozta őket.

Az ügyfélalkalmazás futtatása

Nem kezelt kivétel: System.ServiceModel.EndpointNotFoundException: Nem sikerült csatlakozni a következőhöz: ''http://localhost:8000/GettingStarted/CalculatorService. 10061-ös TCP-hibakód: Nem sikerült kapcsolatot létesíteni, mert a célgép aktívan elutasította.

Ez a hiba akkor fordul elő, ha az ügyfélalkalmazást a szolgáltatás elindítása nélkül futtatja. Először futtassa a gazdaalkalmazást a szolgáltatás elindításához, majd futtassa az ügyfélalkalmazást.

Az Svcutil.exe eszköz használata

Az Svcutil nem ismerhető fel belső vagy külső parancsként, operatív programként vagy kötegelt fájlként.

Svcutil.exe a rendszerútvonalon kell lennie. A legegyszerűbb megoldás a Visual Studio parancssorának használata. A Start menüben válassza a Visual Studio <verziókönyvtárát>, majd válassza a Fejlesztői parancssor VS-verzióhoz <>lehetőséget. Ez a parancssor a Visual Studio részeként szállított összes eszköz rendszerútvonalát a megfelelő helyekre állítja be.

A szolgáltatás- és ügyfélalkalmazások futtatása

System.ServiceModel.Security.SecurityNegotiationException: Nem sikerült a SOAP biztonsági egyeztetése a következő célhoz: "http://localhost:8000/GettingStarted/CalculatorService"http://localhost:8000/GettingStarted/CalculatorService

Ez a hiba olyan tartományhoz csatlakoztatott számítógépen fordul elő, amely nem rendelkezik hálózati kapcsolattal. Csatlakoztassa a számítógépet a hálózathoz, vagy kapcsolja ki a szolgáltatás és az ügyfél biztonságát.

A biztonság kikapcsolása:

  • A szolgáltatás esetében cserélje le a kódot létrehozó WSHttpBinding kódot a következő kódra:

    // Step 3: Add a service endpoint.
    selfhost.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(SecurityMode.None), "CalculatorService");  
    
  • Az ügyfél konfigurációs fájljában frissítse a <kötési elem alatti biztonsági> elemet az <alábbiak szerint:>

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

Lásd még

A WCF-alkalmazások használatának első lépései
WCF hibaelhárítási rövid útmutató
Beállítási problémák elhárítása