Gewusst wie: Entwickeln eines WCF-Datendiensts, der auf IIS ausgeführt wird

In diesem Thema wird gezeigt, wie WCF Data Services zum Erstellen eines Datendiensts auf Grundlage der Northwind-Beispieldatenbank verwendet wird, die von einer auf ISS (Internetinformationsdienste) ausgeführten ASP.NET-Webanwendung gehostet wird. Ein Beispiel zum Erstellen desselben Northwind-Datendiensts als ASP.NET-Webanwendung, die auf dem ASP.NET Development Server ausgeführt wird, finden Sie unter WCF Data Services-Schnellstart.

Dd728288.note(de-de,VS.100).gifHinweis:
Um den Northwind-Datendienst zu erstellen, muss die Northwind-Beispieldatenbank auf dem lokalen Computer installiert sein.Diese Beispieldatenbank kann von der Downloadseite Beispieldatenbanken für SQL Server heruntergeladen werden.

In diesem Thema wird gezeigt, wie ein Datendienst mithilfe des Entity Framework-Anbieters erstellt wird. Weitere Datendiensteanbieter sind verfügbar. Weitere Informationen finden Sie unter Datendiensteanbieter (WCF Data Services).

Nach dem Erstellen des Diensts, müssen Sie explizit den Zugriff auf Datendienstressourcen bereitstellen. Weitere Informationen finden Sie unter Gewusst wie: Aktivieren des Zugriffs auf den Datendienst (WCF Data Services).

So erstellen Sie die in IIS ausgeführte ASP.NET-Webanwendung

  1. Wählen Sie in Visual Studio im Menü Datei die Option Neu aus, und wählen Sie dann Projekt aus.

  2. Wählen Sie im Dialogfeld Neues Projekt entweder Visual Basic oder Visual C# als Programmiersprache aus.

  3. Wählen Sie im Bereich Vorlagen die Option ASP.NET-Webanwendung aus. Hinweis: Wenn Sie Visual Studio Web Developer verwenden, müssen Sie anstelle einer neuen Webanwendung eine neue Website erstellen.

  4. Geben Sie NorthwindService als Namen des Projekts ein.

  5. Klicken Sie auf OK.

  6. Wählen Sie im Menü Projekt die Option NorthwindService-Eigenschaften aus.

  7. Wählen Sie die Registerkarte Web und anschließend die Option Lokalen IIS-Webserver verwenden aus.

  8. Klicken Sie auf Virtuelles Verzeichnis erstellen und anschließend auf OK.

  9. Führen Sie in der Eingabeaufforderung den folgenden Befehl aus:

    "%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -i
    

    Hierdurch wird sichergestellt, dass Windows Communication Foundation (WCF) auf dem Computer registriert wird.

  10. Führen Sie mit SQL Server Management Studio oder dem SQLCMD-Hilfsprogramm den folgenden Transact-SQL-Befehl für die SQL Server-Instanz aus, der die Northwind-Datenbank angefügt ist:

    CREATE LOGIN [NT AUTHORITY\NETWORK SERVICE] FROM WINDOWS;
    GO 
    

    Dadurch wird in der SQL Server-Instanz eine Anmeldung für das Windows-Konto erstellt, das verwendet wurde, um IIS auszuführen. Dies ermöglicht es IIS, eine Verbindung mit der SQL Server-Instanz herzustellen.

  11. Führen Sie mit der angefügten Northwind-Datenbank, die folgenden Transact-SQL-Befehle aus:

    USE Northwind
    GO
    CREATE USER [NT AUTHORITY\NETWORK SERVICE] 
    FOR LOGIN [NT AUTHORITY\NETWORK SERVICE] WITH DEFAULT_SCHEMA=[dbo];
    GO
    ALTER LOGIN [NT AUTHORITY\NETWORK SERVICE] 
    WITH DEFAULT_DATABASE=[Northwind]; 
    GO
    EXEC sp_addrolemember 'db_datareader', 'NT AUTHORITY\NETWORK SERVICE'
    GO
    EXEC sp_addrolemember 'db_datawriter', 'NT AUTHORITY\NETWORK SERVICE'
    GO 
    

    Hierdurch werden der neuen Anmeldung Rechte erteilt, die IIS den Lese- und Schreibzugriff für Daten der Northwind-Datenbank zu gewähren.

So definieren Sie das Datenmodell

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Namen des ASP.NET-Projekts, und klicken Sie dann auf Neues Element hinzufügen.

  2. Wählen Sie im Dialogfeld Neues Element hinzufügen die Option ADO.NET Entity Data Model aus.

  3. Geben Sie als Name des Datenmodells Northwind.edmx ein.

  4. Wählen Sie im Assistent für Entity Data Model die Option Aus Datenbank generieren aus, und klicken Sie auf Weiter.

  5. Verbinden Sie das Datenmodell mit der Datenbank, indem Sie einen der folgenden Schritte ausführen, und klicken Sie dann auf Weiter:

    • Wenn noch keine Datenbankverbindung konfiguriert wurde, klicken Sie auf Neue Verbindung, um eine neue Verbindung zu erstellen. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Verbindungen mit SQL Server-Datenbanken. Dieser SQL Server-Instanz muss die Northwind-Beispieldatenbank angefügt worden sein.

      - oder -

    • Wenn bereits eine Datenbankverbindung für die Northwind-Datenbank konfiguriert wurde, wählen Sie diese Verbindung in der Liste der Verbindungen aus.

  6. Aktivieren Sie auf der letzten Seite des Assistenten die Kontrollkästchen für alle Tabellen in der Datenbank, und deaktivieren Sie die Kontrollkästchen für Sichten und gespeicherte Prozeduren.

  7. Klicken Sie auf Fertig stellen, um den Assistenten zu schließen.

    Dd728288.note(de-de,VS.100).gifHinweis:
    Das erstellte Datenmodell macht Fremdschlüsseleigenschaften von Entitätstypen verfügbar.Mit Visual Studio 2008 erstellte Datenmodelle enthalten diese Fremdschlüsseleigenschaften nicht.Aus diesem Grund müssen Sie die Clientdatendienstklassen jeglicher Clientanwendungen aktualisieren, die für den Zugriff auf den mit Visual Studio 2008 erstellten Northwind-Datendienst erstellt wurden, bevor Sie auf diese Version des Northwind-Datendiensts zugreifen.

So erstellen Sie den Datendienst

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Namen des ASP.NET-Projekts, und klicken Sie dann auf Neues Element hinzufügen.

  2. Wählen Sie im Dialogfeld Neues Element hinzufügen die Option ADO.NET Data Service aus.

  3. Geben Sie als Name des Diensts Northwind ein.

    Visual Studio erstellt das XML-Markup und die Codedateien für den neuen Dienst. In der Standardeinstellung wird das Fenster des Code-Editors geöffnet. Im Projektmappen-Explorer wird der Dienst mit dem Namen "Northwind" und der Erweiterung ".svc.cs" oder ".svc.vb" angezeigt.

  4. Ersetzen Sie im Code für den Datendienst in der Definition der Klasse, die den Datendienst definiert, den Kommentar /* TODO: put your data source class name here */ durch den Typ des Entitätscontainers des Datenmodells, in diesem Fall NorthwindEntities. Die Klassendefinition sollte wie folgt aussehen:

    Public Class Northwind
        Inherits DataService(Of NorthwindEntities)
    
    public class Northwind : DataService<NorthwindEntities>
    

Siehe auch

Konzepte

Verfügbarmachen der Daten als Dienst (WCF Data Services)