Problembehandlung bei Windows Communication Foundation- (WCF) oder WCF Data Services-Verweisen in Visual Studio
Gilt für: Visual Studio
In diesem Artikel werden Lösungen für häufige Probleme aufgeführt, die auftreten können, wenn Sie mit Verweisen auf Windows Communication Foundation (WCF) oder WCF Data Services in Visual Studio arbeiten.
Wenn Sie einen Dienstverweis aktualisieren oder entfernen möchten, lesen Sie das Hinzufügen, Aktualisieren oder Entfernen eines WCF-Datendienstverweises.
Fehler, wenn keine Dienstadresse angegeben wird
Wenn Sie die Schaltfläche "Gehe zu " ohne Adresse auswählen, wird möglicherweise eine Fehlermeldung mit der Meldung "Bitte geben Sie die Adresse für einen Dienst ein". Um dieses Problem zu beheben, identifizieren Sie die Adresse des Diensts, und geben Sie es ein.
- Wenn es sich um einen Dienst in Ihrer Lösung handelt, können Sie die Schaltfläche Ermitteln verwenden, um ihn zu suchen und auszuwählen, und es dann erneut mit der Schaltfläche Los zu versuchen.
- Wenn es sich um einen Dienst handelt, der irgendwo im Internet gehostet wird, fügen Sie ihn hinzu, indem Sie die Anweisungen unter Hinzufügen einer WCF-Dienstreferenz befolgen.
Fehler beim Zurückgeben von Daten von einem Dienst
Wenn Sie einenDataSet
oder DataTable
von einem Dienst zurückgeben, erhalten Sie möglicherweise die Ausnahme „Die maximale Größe für eingehende Nachrichten wurde überschritten“. Standardmäßig ist die Eigenschaft MaxReceivedMessageSize
für einige Bindungen auf einen relativ kleinen Wert festgelegt, um die Angriffsfläche für Denial-of-Service-Angriffe zu begrenzen. Sie können diesen Wert erhöhen, um die Ausnahme zu verhindern. Weitere Informationen finden Sie unter MaxReceivedMessageSize.
So beheben Sie diesen Fehler
- Doppelklicken Sie im Projektmappen-Explorer auf die Datei app.config, um sie zu öffnen.
- Suchen Sie die Eigenschaft
MaxReceivedMessageSize
und ändern Sie sie in einen größeren Wert.
Ein Dienst in meiner Lösung kann nicht gefunden werden.
Wenn Sie im Dialogfeld "Dienstverweise hinzufügen" die Schaltfläche "Ermitteln" auswählen, werden mindestens ein WCF-Dienstbibliotheksprojekt in der Lösung in der Dienstliste nicht angezeigt. Dieses Problem kann auftreten, wenn der Lösung eine Dienstbibliothek hinzugefügt, aber noch nicht kompiliert wurde.
So beheben Sie diesen Fehler
- Klicken Sie imProjektmappen-Explorer mit der rechten Maustaste auf das WCF-Dienstbibliotheksprojekt.
- Wählen Sie Build aus.
Fehler beim Zugriff auf einen Dienst mit einem Remotedesktop
Wenn ein Benutzer über eine Remotedesktopverbindung auf einen webgehosteten WCF-Dienst zugreift und der Benutzer keine Administratorberechtigungen besitzt, wird die NTLM-Authentifizierung verwendet. Wenn der Benutzer über keine Administratorberechtigungen verfügt, erhält der Benutzer möglicherweise die folgende Fehlermeldung: "Die HTTP-Anforderung ist nicht autorisiert mit dem Clientauthentifizierungsschema 'Anonym'. Der vom Server empfangene Authentifizierungsheader lautet "NTLM"."
So beheben Sie diesen Fehler
- Öffnen Sie im Websiteprojekt die Eigenschaften-Seiten.
- Deaktivieren Sie das Kontrollkästchen NTLM-Authentifizierung auf der Registerkarte Startoptionen.
Hinweis
Sie sollten die NTLM-Authentifizierung nur für Websites deaktivieren, die ausschließlich WCF-Dienste enthalten. Die Sicherheit für WCF-Dienste wird über die Konfiguration in der web.config-Datei verwaltet. Dadurch ist die NTLM-Authentifizierung überflüssig.
Die Einstellung „Zugriffsebene für generierte Klassen“ hat keine Auswirkung
Das Festlegen der Option Zugriffsebene für generierte Klassen im Dialogfeld Dienstverweise konfigurieren auf Intern oder Freund funktioniert möglicherweise nicht immer. Obwohl die Option im Dialogfeld festgelegt zu sein scheint, werden die resultierenden Unterstützungsklassen mit der Zugriffsebene Public
generiert. Dies ist eine bekannte Einschränkung bestimmter Typen, z. B. solchen mit von XmlSerializer serialisierten Typen.
Fehler beim Debuggen von Dienstcode
Wenn Sie den Code für einen WCF-Dienst über Clientcode schrittweise ausführen, erhalten Sie möglicherweise eine Fehlermeldung bezüglich fehlender Symbole. Es kann auftreten, wenn ein Dienst, der Teil Ihrer Lösung war, verschoben oder aus der Lösung entfernt wurde.
Wenn Sie zum ersten Mal einen Verweis auf einen WCF-Dienst hinzufügen, der Teil der aktuellen Projektmappe ist, entsteht eine explizite Buildabhängigkeit zwischen dem Dienstprojekt und dem Dienstclientprojekt. Dadurch wird sichergestellt, dass der Client immer auf aktuelle Binärdateien des Dienstes zugreift. Dies ist besonders wichtig für Debuggingszenarien, etwa wenn bei schrittweisen Ausführen vom Clientcode in den Dienstcode gewechselt wird.
Wenn das Dienstprojekt aus der Projektmappe entfernt wird, wird diese explizite Buildabhängigkeit ungültig. Visual Studio kann nicht mehr garantieren, dass bei Bedarf ein erneuter Build des Dienstprojekts erstellt wird.
Um diesen Fehler zu beheben, erstellen Sie das Dienstprojekt manuell neu:
- Klicken Sie im Menü Extras auf Optionen.
- Erweitern Sie im Dialogfeld Optionen den Eintrag Projekte und Projektmappen, und wählen Sie dann Allgemein aus.
- Stellen Sie sicher, dass das Kontrollkästchen "Erweiterte Buildkonfigurationen anzeigen" aktiviert ist, und wählen Sie dann "OK" aus.
- Laden Sie das WCF-Dienstprojekt.
- Legen Sie im Dialogfeld Konfigurations-Manager die Konfiguration der aktuellen Projektmappe auf Debugfest. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen und Bearbeiten von Konfigurationen.
- Wählen Sie im Projektmappen-Explorer das WCF-Dienstprojekt aus.
- Wählen Sie im Menü "Erstellen " die Option "Neu erstellen" aus, um das WCF-Dienstprojekt neu zu erstellen.
WCF Data Services wird nicht im Browser angezeigt
Wenn versucht wird, eine XML-Darstellung von Daten in einem WCF Data Service anzuzeigen, interpretiert Internet Explorer die Daten möglicherweise irrtümlicherweise als RSS-Feed. Sie müssen sicherstellen, dass die Option zum Anzeigen von RSS-Feeds deaktiviert ist.
Um diesen Fehler zu beheben, deaktivieren Sie RSS-Feeds:
- Wählen Sie in Internet Explorer im Menü "Extras" die Option "Internetoptionen" aus.
- Wählen Sie auf der Registerkarte "Inhalt" im Abschnitt "Feeds" die Option "Einstellungen" aus.
- Deaktivieren Sie im Dialogfeld "Feedeinstellungen" das Kontrollkästchen "Feedleseansicht aktivieren", und wählen Sie dann "OK" aus.
- Wählen Sie zum Schließen des Dialogfelds Internetoptionen die Option OK aus.