Problembehandlung bei Dienstverweisen
Aktualisiert: Juli 2008
In diesem Thema sind allgemeine Probleme aufgelistet, die bei der Arbeit mit Verweisen auf Windows Communication Foundation (WCF)- oder ADO.NET-Datendienste in Visual Studio auftreten können.
Fehler beim Zurückgeben von Daten von einem Dienst
Wenn ein DataSet oder eine DataTable von einem Dienst zurückgegeben wird, erhalten Sie möglicherweise den Ausnahmefehler "Die maximale Kontingentgröße für eingehende Nachrichten wurde überschritten". Die MaxReceivedMessageSize-Eigenschaft für einige Bindungen ist standardmäßig auf einen verhältnismäßig kleinen Wert festgelegt, um die Gefahr von Denial-of-Service-Angriffen zu verringern. Sie können diesen Wert erhöhen, um den Ausnahmefehler 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 MaxReceivedMessageSize-Eigenschaft und erhöhen Sie deren Wert.
Ein Dienst in Eigene Projektmappe kann nicht gefunden werden
Wenn Sie im Dialogfeld Dienstverweis hinzufügen auf die Schaltfläche Ermitteln klicken, werden ein oder mehrere WCF-Dienstbibliotheksprojekte der Projektmappe nicht in der Diensteliste angezeigt. Dies kann passieren, wenn der Projektmappe eine noch nicht kompilierte Dienstbibliothek hinzugefügt wurde.
So beheben Sie diesen Fehler:
- Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das WCF-Dienstbibliotheksprojekt, und klicken Sie dann auf Erstellen.
Fehler beim Zugriff auf einen Dienst über einen Remotedesktop
Wenn ein Benutzer über eine Remotedesktopverbindung auf einen im Web gehosteten WCF-Dienst ohne Administratorberechtigungen zugreift, wird die NTLM-Authentifizierung verwendet. Wenn der Benutzer nicht über Administratorberechtigungen verfügt, erhält er möglicherweise die folgende Fehlermeldung: "Die HTTP-Anforderung ist für das Clientauthentifizierungsschema 'Anonym' nicht autorisiert. Der vom Server empfangene Authentifizierungsheader lautet 'NTLM'."
So beheben Sie diesen Fehler:
Öffnen Sie im Websiteprojekt die Seite Eigenschaften.
Deaktivieren Sie auf der Registerkarte Startoptionen das Kontrollkästchen NTLM-Authentifizierung.
Hinweis: Sie sollten NTLM-Authentifizierung nur für Websites ausschalten, die ausschließlich WCF-Dienste enthalten. Die Sicherheit für WCF-Dienste wird durch die Konfiguration in der Datei web.config verwaltet. Dies macht NTLM-Authentifizierung unnötig.
Weitere Informationen finden Sie unter Problembehandlung bei Ausnahmen: System.ServiceModel.Security.MessageSecurityException.
Zugriffsebene für Generierte Klassen-Einstellung hat keine Auswirkungen
Das Festlegen der Option Zugriffsebene für generierte Klassen im Dialogfeld Dienstverweis konfigurieren auf Intern oder Friend funktioniert unter Umständen nicht. Obwohl die Option im Dialogfeld festgelegt zu sein scheint, werden in diesem Fall die resultierenden Unterstützungsklassen mit der Zugriffsebene Public erstellt.
Dies ist eine bekannte Einschränkung bestimmter Typen, wie beispielsweise die die unter Verwendung von XmlSerializer serialisiert wurden.
Fehler beim Debuggen von Dienstcode
Wenn Sie den Code für einen WCF-Dienst vom Clientcode aus in Einzelschritten ausführen, wird ggf. ein Fehler aufgrund von fehlenden Symbolen ausgegeben. Dieser Fehler tritt auf, wenn ein Dienst, der Bestandteil der Projektmappe war, verschoben oder aus der Projektmappe entfernt wurde.
Wenn Sie einen Verweis auf einen WCF-Dienst in der aktuellen Projektmappe zum ersten Mal hinzufügen, wird eine explizite Buildabhängigkeit zwischen dem Dienstprojekt und dem Dienstclientprojekt eingefügt. Hierdurch wird gewährleistet, dass der Client immer auf aktuelle Dienstbinärdateien zugreift, was vor allem in Debugging-Szenarios wichtig ist, z. B. bei schrittweisen Wechseln von Clientcode zu Dienstcode.
Wenn das Dienstprojekt aus der Projektmappe entfernt wird, wird diese explizite Buildabhängigkeit ungültig. Visual Studio kann dann nicht mehr garantieren, dass das Dienstprojekt den Anforderungen entsprechend neu erstellt wird.
Um diesen Fehler zu beheben, müssen Sie das Dienstprojekt manuell neu erstellen:
Klicken Sie im Menü Extras auf Optionen.
Erweitern Sie im Dialogfeld Optionen die Option Projekte und Projektmappen, und wählen Sie dann Allgemein aus.
Stellen Sie sicher, dass das Kontrollkästchen Erweiterte Buildkonfigurationen anzeigen aktiviert ist, und klicken Sie dann auf OK.
Laden Sie das WCF-Dienstprojekt. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Projektmappen mit mehreren Projekten.
Legen Sie im Dialogfeld Konfigurations-Manager für Konfiguration der aktuellen Projektmappe die Option Debuggen fest. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen und Bearbeiten von Konfigurationen.
Wählen Sie im Projektmappen-Explorer das WCF-Dienstprojekt aus.
Klicken Sie im Menü Erstellen auf Neu erstellen, um das WCF-Dienstprojekt neu zu erstellen.
ADO.NET Data Services werden nicht im Browser angezeigt
Beim Versuch, eine XML-Darstellung von Daten in einem ADO.NET-Datendienst anzuzeigen, interpretiert Internet Explorer die Daten u. U. fälschlicherweise 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:
Klicken Sie in Internet Explorer im Menü Extras auf Internetoptionen.
Klicken Sie auf der Registerkarte Inhalte im Abschnitt Feeds auf Einstellungen.
Deaktivieren Sie im Dialogfeld Feedeinstellungen das Kontrollkästchen Feedleseanzeige einschalten, und klicken Sie dann auf OK.
Klicken Sie auf OK, um das Dialogfeld Internetoptionen zu schließen.
Siehe auch
Aufgaben
Beispiel zur Verwendung von ASMX- und WCF-Diensten
Weitere Ressourcen
Windows Communication Foundation-Dienste und ADO.NET Data Services
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
Juli 2008 |
Informationen über ADO.NET Data Services hinzugefügt. |
SP1-Featureänderung. |