Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
0 sur 1 ont trouvé cela utile - Évaluez ce sujet

Utilisation de SQL Server Express avec ASP.NET

Microsoft SQL Server Express fournit une solution de base de données simple pour générer des applications. SQL Server Express prend en charge le modèle de programmation SQL Server complet avec Transact-SQL, les procédures stockées, les vues, les déclencheurs, SQLCLR (SQL Server CLR Integration) et le type de données XML. Lorsque vous développez une application à l'aide de SQL Server Express en tant que source de données, l'application sera compatible avec les serveurs de production qui exécutent SQL Server.

RemarqueRemarque

Avec Visual Studio 2010 Service Pack 1, une alternative à SQL Server Express est SQL Server Compact, qui offre une facilité de déploiement supérieure pour les projets Web. Pour plus d'informations, consultez Procédure pas à pas : utilisation de SQL Server Compact dans Visual Studio.

Vous pouvez vous connecter à une base de données SQL Server Express de la même manière que vous le feriez avec une base de données SQL Server, en spécifiant le serveur de base de données en tant que source de données SQL Server Express locale. Par exemple, la chaîne de connexion suivante permet de se connecter à une base de données nommée Customers.

Data Source=.\SQLEXPRESS;Initial Catalog=Customers;Integrated Security=True;

Vous pouvez également spécifier un fichier de base de données à attacher en utilisant l'attribut de chaîne de connexion AttachDBFilename au lieu des attributs de chaîne de connexion InitialCatalog ou Database. La connexion à la base de données à l'aide d'un nom de fichier simplifie le déploiement de votre base de données avec votre application (à partir du moment où le serveur cible exécute SQL Server Express). Par exemple, la chaîne de connexion suivante se connecte à une base de données stockée dans le fichier Customers.mdf.

Data Source=.\SQLEXPRESS;AttachDbFileName=e:\data\Customers.mdf;Integrated Security=True;User Instance=True

ASP.NET fournit une option pratique de stockage des données dans le répertoire App_Data d'une application Web. Le contenu du répertoire App_Data n'est pas transmis en réponse aux demandes Web, ce qui améliore la sécurité des données de votre application. Plus pratique encore, vous pouvez fournir la variable de chaîne de connexion |DataDirectory| au lieu du chemin d'accès au répertoire App_Data de votre application. Les fonctionnalités ASP.NET, telles que le contrôle SqlDataSource ou les fournisseurs d'appartenance, de rôles, de profils utilisateur, de personnalisation WebParts, etc. substitueront automatiquement la variable de chaîne de connexion |DataDirectory| au chemin d'accès au répertoire App_Data lors de l'ouverture d'une connexion à la base de données. Vous êtes ainsi assuré que le chemin d'accès à votre base de données reste à jour si votre application Web est déplacée vers un répertoire différent. L'exemple de code suivant montre une chaîne de connexion qui inclut la variable de chaîne de connexion |DataDirectory|.

Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|Customers.mdf;Integrated Security=True;User Instance=True

Vous pouvez fermer la connexion détenue par Visual Web Developer en cliquant avec le bouton droit sur la base de données dans l'Explorateur de solutions et en sélectionnant l'option Détacher ou encore en cliquant avec le bouton droit sur la base de données dans l'Explorateur de serveurs et en sélectionnant Fermer la connexion. Visual Web Developer ferme automatiquement toutes les connexions de base de données ouvertes lorsque vous exécutez ou déboguez votre application Web.

De plus, si vous devez libérer des connexions ouvertes vers une base de données SQL Server Express, vous pouvez décharger votre application Web à l'aide du Gestionnaire des services IIS. Vous pouvez également décharger une application Web en ajoutant un fichier HTML nommé App_offline.htm au répertoire racine de votre application Web. Pour permettre à votre application Web de répondre à nouveau aux demandes Web, il suffit simplement de supprimer le fichier App_offline.htm. Vous devrez libérer des connexions ouvertes vers une base de données SQL Server Express lorsque vous souhaitez copier ou déplacer la base de données vers un nouvel emplacement.

Visual Web Developer fournit des outils qui permettent de créer une base de données SQL Server Express, de gérer des éléments de base de données (tables et procédures stockées, par exemple) et de gérer des connexions à la base de données. Vous pouvez accéder à ces fonctions via la fenêtre Explorateur de serveurs. Pour obtenir des instructions sur la création d'une base de données SQL Server Express, consultez Comment : créer des bases de données SQL Server Express Edition.

Vous pouvez également créer une base de données SQL Server Express en établissant une connexion à un ordinateur exécutant SQL Server Express et en émettant une commande CREATE DATABASE, ou en utilisant les outils d'administration SQL Server fourni pour SQL Server Express.

Le fournisseur par défaut de fonctionnalités ASP.NET qui stockent des données dans une base de données SQL Server (appartenance, rôles, profils utilisateur, personnalisation de composants WebPart, par exemple) est configuré pour se connecter à la base de données SQL Server Express Aspnetdb.mdf dans le répertoire App_Data de votre application. Si vous activez chacune de ces fonctionnalités de stockage de données à l'aide du fournisseur par défaut et que la base de données SQL Server Express Aspnetdb.mdf n'existe pas dans le répertoire App_Data de votre application, la base de données est créée automatiquement. Le répertoire App_Data de votre application est également créé s'il n'existe pas.

SQL Server Express prend en charge des instances utilisateur. En d'autres termes, un nouveau processus démarre pour chaque utilisateur qui se connecte à une base de données SQL Server Express. L'identité du processus est l'utilisateur qui a ouvert la connexion. Pour plus d'informations sur la détermination de l'identité d'une application ASP.NET, consultez Emprunt d'identité ASP.NET.

Lorsque vous vous connectez à un projet de base de données local, Visual Web Developer se connecte par défaut à la base de données SQL Server Express avec les instances utilisateur activées. L'exemple de code suivant montre une chaîne de connexion classique utilisée par Visual Web Developer pour établir une connexion à une base de données SQL Server Express.

Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|Database.mdf;Integrated Security=True;User Instance=True

Bien que l'activation des instances utilisateur soit adaptée au développement bureautique, le démarrage de processus de travail ne convient pas dans le cas de serveurs Web hébergeant des sites pour plusieurs clients, où les applications doivent être séparées et sécurisées. Les applications ASP.NET qui s'exécutent avec la même identité de processus peuvent se connecter à la même instance d'utilisateur. Dans la mesure où toutes les applications ASP.NET s'exécutent avec la même identité de processus sur Windows 2000 et Windows XP Professionnel (par défaut, le compte ASPNET local) et que les applications ASP.NET dans le même pool d'applications s'exécutent avec la même identité de processus sur Windows Server 2003, (par défaut, le compte SERVICE RÉSEAU), les serveurs d'hébergement partagés qui contiennent des applications sans relation d'approbation entre elles doivent désactiver explicitement les instances utilisateurs. Ces fonctionnalités peuvent être désactivées en établissant une connexion à l'instance SQL Server Express (par exemple, en émettant la commande suivante à une invite de commandes : osql –E –S .\SQLEXPRESS) et en émettant la commande Transact-SQL suivante.

EXEC sp_configure 'show advanced option', '1'

GO

RECONFIGURE WITH OVERRIDE

GO

EXEC sp_configure 'user instances enabled', 0

GO

RECONFIGURE WITH OVERRIDE

GO

Une base de données SQL Express est composée de deux fichiers : le fichier .mdf (qui contient le schéma de la base de données et les données) et le fichier .ldf (qui contient le journal de la base de données). Lorsque vous déployez un site Web à l'aide de l'outil Copier le site Web, les fichiers base de données SQL Server Express sont également copiés. Votre application continuera à s'exécuter tant que SQL Server Express sera installé sur le serveur cible. Pour plus d'informations, consultez Comment : déployer un projet de site Web à l'aide de l'outil Copier le site Web.

Voici d'autres options de déploiement d'une base de données SQL Server Express.

  • Si vous établissez une connexion basée sur des fichiers à votre base de données SQL Server Express, ces fichiers peuvent être copiés avec votre application vers un serveur cible (sur lequel SQL Server Express est installé) à l'aide de XCopy, FTP ou tout autre moyen.

  • Comme SQL Server Express utilise le même format de fichier que d'autres versions de SQL Server, vous pouvez copier les fichiers .ldf et .mdf vers un serveur qui exécute SQL Server, puis attacher les fichiers en tant que base de données.

  • Si vous souhaitez copier une base de données SQL Server Express vide qui contient le schéma de la base de données mais sans données, les outils d'administration SQL Server vous permettent de générer des scripts qui peuvent être exécutés dans votre base de données cible pour dupliquer le schéma à partir de votre base de données de développement.

    RemarqueRemarque

    Si vous déployez votre base de données SQL Server Express vers un serveur Web qui héberge plusieurs sites qui ne s'approuvent pas mutuellement, vous ne pouvez alors pas utiliser de connexions basées sur des fichiers ni d'instances utilisateur pour faire en sorte que vos données ne soient pas exposées à d'autres applications sur le serveur. Dans ce cas, il est recommandé de migrer le contenu de votre base de données SQL Server Express vers une autre version de SQL Server auquel votre application ASP.NET déployée peut accéder.

Si votre base de données SQL Server Express contient des informations chiffrées (mots de passe chiffrés stockés dans une base de données d'appartenances), assurez-vous que vos clés de chiffrement sont également copiées vers le serveur cible.

Si vous souhaitez déplacer l'ensemble de la base de données SQL Server Express, vous devez vérifier qu'aucune connexion ouverte n'est établie à la base de données qui risquerait d'entraîner son verrouillage.

Déverrouillage d'une base de données verrouillée

S'il existe une connexion ouverte à une base de données, la base de données est verrouillée et ne peut pas être déplacée ou supprimée. Les connexions ouvertes peuvent être détenues par une application ASP.NET, Visual Studio ou un autre programme ou client de base de données. Pour déverrouiller une base de données, toutes les connexions ouvertes à la base de données doivent être fermées. Vous pouvez fermer les connexions ouvertes de plusieurs façons :

  • Vous pouvez fermer la connexion détenue par Visual Web Developer en cliquant avec le bouton droit sur la base de données dans l'Explorateur de solutions et en sélectionnant l'option Détacher ou encore en cliquant avec le bouton droit sur la base de données dans l'Explorateur de serveurs et en sélectionnant Fermer la connexion. Visual Web Developer ferme automatiquement toutes les connexions de base de données ouvertes lorsque vous exécutez ou déboguez votre application Web.

  • Vous pouvez fermer toutes les connexions détenues par une application ASP.NET en fermant l'application. Pour ce faire, vous pouvez utiliser le Gestionnaire des services IIS ou placer un fichier nommé App_offline.htm dans le répertoire racine de l'application ASP.NET (vous devez supprimer ce fichier pour redémarrer l'application).

  • Vous pouvez fermer toutes les connexions détenues par d'autres sources, telles qu'une application Windows Forms, en quittant le programme.

Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.