Problemen met WCF-verwijzingen (Windows Communication Foundation) of WCF Data Services oplossen in Visual Studio

Van toepassing op: Visual Studio

In dit artikel vindt u oplossingen voor veelvoorkomende problemen die kunnen optreden wanneer u werkt met verwijzingen naar Windows Communication Foundation (WCF) of WCF Data Services in Visual Studio.

Als u een servicereferentie wilt bijwerken of verwijderen, raadpleegt u Een WCF-gegevensservicereferentie toevoegen, bijwerken of verwijderen.

Fout wanneer er geen serviceadres wordt opgegeven

Wanneer u de knop Start zonder adres selecteert, ziet u mogelijk een foutbericht met de tekst 'Voer het adres voor een service in'. Om dit probleem op te lossen, identificeert u het adres van de service en voert u het in.

  • Als het een service in uw oplossing is, kunt u de knop Ontdekken gebruiken om deze te zoeken en te selecteren. Probeer vervolgens de knop Start opnieuw.
  • Als het een service is die ergens op internet wordt gehost, voegt u deze toe door de instructies te volgen bij Een WCF-servicereferentie toevoegen.

Fout bij het retourneren van gegevens van een service

Wanneer u een DataSet of DataTable meer services retourneert, ontvangt u mogelijk de uitzondering 'Het maximale groottequotum voor binnenkomende berichten is overschreden'. De eigenschap voor sommige bindingen is standaard MaxReceivedMessageSize ingesteld op een relatief kleine waarde om de blootstelling aan Denial of Service-aanvallen te beperken. U kunt deze waarde verhogen om de uitzondering te voorkomen. Zie MaxReceivedMessageSize voor meer informatie.

Ga als volgt te werk om deze fout op te lossen:

  1. Dubbelklik in Solution Explorer op het bestand app.config om het te openen.
  2. Zoek de MaxReceivedMessageSize eigenschap en wijzig deze in een grotere waarde.

Kan geen service vinden in mijn oplossing

Wanneer u de knop Ontdekken selecteert in het dialoogvenster Serviceverwijzingen toevoegen, worden een of meer WCF-servicebibliotheekprojecten in de oplossing niet weergegeven in de lijst met services. Dit probleem kan optreden als er een servicebibliotheek is toegevoegd aan de oplossing, maar nog niet is gecompileerd.

Ga als volgt te werk om deze fout op te lossen:

  1. Klik in Solution Explorer met de rechtermuisknop op het wcF-servicebibliotheekproject.
  2. Selecteer Build.

Fout bij het openen van een service via een extern bureaublad

Wanneer een gebruiker een web-hostende WCF-service opent via een verbinding met een extern bureaublad en de gebruiker geen beheerdersmachtigingen heeft, wordt NTLM-verificatie gebruikt. Als de gebruiker geen beheerdersmachtigingen heeft, ontvangt de gebruiker mogelijk het volgende foutbericht: 'De HTTP-aanvraag is niet gemachtigd met clientverificatieschema 'Anoniem'. De verificatieheader die van de server is ontvangen, was 'NTLM'.

Ga als volgt te werk om deze fout op te lossen:

  1. Open de eigenschappenpagina's in het websiteproject.
  2. Schakel op het tabblad Startopties het selectievakje NTLM-verificatie uit.

Notitie

Schakel NTLM-verificatie alleen uit voor websites die uitsluitend WCF-services bevatten. Beveiliging voor WCF-services wordt beheerd via de configuratie in het web.config-bestand . Hierdoor is NTLM-verificatie niet nodig.

Toegangsniveau voor gegenereerde klasseninstelling heeft geen effect

Het instellen van het toegangsniveau voor gegenereerde klassen in het dialoogvenster Serviceverwijzingen configureren op Intern of Vriend werkt mogelijk niet altijd. Hoewel de optie in het dialoogvenster lijkt te worden ingesteld, worden de resulterende ondersteuningsklassen gegenereerd met een toegangsniveau van Public. Dit is een bekende beperking van bepaalde typen, zoals die worden geserialiseerd met behulp van de XmlSerializer.

Foutopsporingsservicecode

Wanneer u stapt in de code voor een WCF-service vanuit clientcode, krijgt u mogelijk een foutmelding met betrekking tot ontbrekende symbolen. Dit kan gebeuren wanneer een service die deel uitmaakt van uw oplossing is verplaatst of verwijderd uit de oplossing.

Wanneer u voor het eerst een verwijzing toevoegt naar een WCF-service die deel uitmaakt van de huidige oplossing, wordt er een expliciete build-afhankelijkheid toegevoegd tussen het serviceproject en het serviceclientproject. Dit garandeert dat de client altijd toegang heeft tot bijgewerkte binaire servicebestanden. Dit is met name belangrijk voor foutopsporingsscenario's, zoals het overstappen van clientcode naar servicecode.

Als het serviceproject uit de oplossing wordt verwijderd, wordt deze expliciete build-afhankelijkheid ongeldig gemaakt. Visual Studio kan niet langer garanderen dat het serviceproject zo nodig opnieuw wordt opgebouwd.

U kunt deze fout oplossen door het serviceproject handmatig opnieuw te bouwen:

  1. In het menu Hulpprogramma's selecteert u Opties.
  2. Vouw projecten en oplossingen uit in het dialoogvenster Opties en selecteer Vervolgens Algemeen.
  3. Zorg ervoor dat het selectievakje Geavanceerde buildconfiguraties weergeven is ingeschakeld en selecteer vervolgens OK.
  4. Laad het WCF-serviceproject.
  5. Stel in het dialoogvenster Configuration Manager de configuratie van de actieve oplossing in op Foutopsporing. Zie Voor meer informatie : Configuraties maken en bewerken.
  6. Selecteer in Solution Explorer het WCF-serviceproject.
  7. Selecteer Opnieuw opbouwen in het menu Opbouwen om het WCF-serviceproject opnieuw te bouwen.

WCF-gegevensservices worden niet weergegeven in de browser

Wanneer wordt geprobeerd een XML-weergave van gegevens in een WCF-gegevensservice weer te geven, kan Internet Explorer de gegevens mogelijk verkeerd interpreteren als een RSS-feed. Zorg ervoor dat de optie voor het weergeven van RSS-feeds is uitgeschakeld.

Als u deze fout wilt oplossen, schakelt u RSS-feeds uit:

  1. Selecteer internetopties in Internet Explorer in het menu Extra.
  2. Selecteer Instellingen op het tabblad Inhoud in de sectie Feeds.
  3. Schakel in het dialoogvenster Feedinstellingen het selectievakje Leesweergave feed inschakelen uit en selecteer VERVOLGENS OK.
  4. Selecteer OK om het dialoogvenster Internetopties te sluiten.