Procédure : développer un WCF Data Service qui fonctionne sur IIS

Cette rubrique indique comment utiliser Services de données WCF pour créer un service de données d'après l'exemple de base de données Northwind hébergé par une application Web ASP.NET qui fonctionne sur les Services Internet (IIS). Pour obtenir un exemple montrant comment créer le même service de données Northwind qu'une application Web ASP.NET qui s'exécute sur le serveur de développement ASP.NET, consultez le démarrage rapide WCF Data Services.

Dd728288.note(fr-fr,VS.100).gifRemarque :
Pour créer le service de données Northwind, vous avez dû installer l'exemple de base de données Northwind sur votre ordinateur local.Pour télécharger cet exemple de base de données, consultez la page de téléchargement, Exemples de bases de données pour SQL Server.

Cette rubrique indique comment créer un service de données à l'aide du fournisseur Entity Framework. Il existe d'autres fournisseurs de services de données. Pour plus d'informations, consultez Fournisseurs de services de données (WCF Data Services).

Après avoir créé le service, vous devez explicitement fournir un accès aux ressources du service de données. Pour plus d'informations, consultez Procédure : activer l'accès au service de données (WCF Data Services).

Pour créer l'application Web ASP.NET qui s'exécute sur les Services Internet (IIS)

  1. Dans Visual Studio, dans le menu Fichier, sélectionnez Nouveau, puis Projet.

  2. Dans la boîte de dialogue Nouveau projet, sélectionnez Visual Basic ou Visual C# comme langage de programmation.

  3. Dans le volet Modèles, sélectionnez Application Web ASP.NET. Remarque : si vous utilisez Visual Studio Web Developer, vous devrez créer un nouveau site Web au lieu d'une nouvelle application Web.

  4. Tapez NorthwindService comme nom du projet.

  5. Cliquez sur OK.

  6. Dans le menu Projet, sélectionnez Propriétés NorthwindService.

  7. Sélectionnez l'onglet Web, puis sélectionnez Utiliser le serveur Web IIS local.

  8. Cliquez sur Créer un répertoire virtuel, puis sur OK.

  9. Depuis l'invite de commandes, exécutez la commande suivante :

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

    Cela vérifie que ce Windows Communication Foundation (WCF) est enregistré sur l'ordinateur.

  10. En utilisant SQL Server Management Studio ou l'utilitaire sqlcmd.exe, exécutez la commande Transact-SQL suivante sur l'instance SQL Server à laquelle la base de données Northwind est attachée :

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

    Cela crée une connexion dans l'instance SQL Server pour le compte Windows utilisé pour exécuter IIS. Cela permet à IIS de se connecter à l'instance de SQL Server.

  11. Avec la base de données Northwind attachée, exécutez les commandes Transact-SQL suivantes :

    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 
    

    Cela accorde des droits à la nouvelle connexion et permet à IIS de lire et d'écrire les données dans la base de données Northwind.

Pour définir le modèle de données

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet ASP.NET, puis cliquez sur Ajouter un nouvel élément.

  2. Dans la boîte de dialogue Ajouter un nouvel élément , sélectionnez ADO.NET Entity Data Model.

  3. Tapez Northwind.edmx pour le nom du modèle de données.

  4. Dans l'Assistant EDM, sélectionnez Générer à partir de la base de données, puis cliquez sur Suivant.

  5. Connectez le modèle de données à la base de données en suivant l'une des étapes suivantes puis cliquez sur Suivant :

    • Si vous n'avez pas une connexion de base de données déjà configurée, cliquez sur Nouvelle connexion puis créez une nouvelle connexion. Pour plus d'informations, consultez Procédure : créer des connexions à des bases de données SQL Server Cette instance SQL Server doit avoir l'exemple de base de données Northwind joint.

      – ou –

    • Si vous avez une connexion de base de données déjà configurée pour vous connecter à la base de données Northwind, sélectionnez cette connexion dans la liste des connexions.

  6. Dans la page finale de l'Assistant, activez les cases à cocher pour toutes les tables de la base de données puis désactivez les cases pour les vues et les procédures stockées.

  7. Cliquez sur Terminer pour fermer l'Assistant.

    Dd728288.note(fr-fr,VS.100).gifRemarque :
    Ce modèle de données généré expose les propriétés de clé étrangère sur les types d'entité.Les modèles de données créés à l'aide de Visual Studio 2008 n'incluent pas ces propriétés de clé étrangère.Vous devez donc mettre à jour les classes de service de données clientes de toutes les applications clientes créées pour accéder au service de données Northwind créé à l'aide de Visual Studio 2008 avant d'essayer d'accéder à cette version du service de données Northwind.

Pour créer le service de données

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre projet ASP.NET, puis cliquez sur Ajouter un nouvel élément.

  2. Dans cette boîte de dialogue Ajouter un nouvel élément, sélectionnez ADO.NET Data Service.

  3. Tapez Northwind pour le nom du service.

    Visual Studio crée le balisage XML et des fichiers de code pour le nouveau service. La fenêtre de l'éditeur de code s'ouvre par défaut. Dans l'Explorateur de solutions, le service aura le nom, Northwind, avec l'extension .svc.cs ou .svc.vb.

  4. Dans le code du service de données, remplacez le commentaire /* TODO: put your data source class name here */ dans la définition de la classe qui définit le service de données par le type qui est le conteneur d'entités du modèle de données, dans ce cas NorthwindEntities. La définition de classe doit ressembler à ceci :

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

Voir aussi

Concepts

Exposition de vos données comme un service (WCF Data Services)