Usando o SQL Server Express Edition com ASP.NET
O Microsoft SQL Server 2005 Express Edition fornece uma solução simples para bancos de dados para a criação de aplicativos.O SQL Server Express Edition oferece suporte completo ao modelo de programação do SQL Server 2005, incluindo o Transact-SQL, procedimentos armazenados, visões, disparadores, o SQL Server CLR Integration (SQLCLR) e o tipo de dados XML.Quando você desenvolver um aplicativo usando o SQL Server Express Edition como a fonte de dados, você pode garantir que o aplicativo será compatível com os servidores de produção que estejam executando o SQL Server 2005.
Conectando-se a um banco de dados SQL Server Express Edition
Você pode se conectar a um banco de dados SQL Server Express Edition como você se conectaria a qualquer banco de dados SQL Server, especificando o servidor do banco de dados como a fonte de dados SQL Server Express Edition local.Por exemplo, a seguinte sequência de conexão se conecta a um banco de dados chamado Customers.
Data Source=.\SQLEXPRESS;Initial Catalog=Customers;Integrated Security=True;
Você também pode especificar um arquivo de banco de dados para o qual se anexar usando o atributo AttachDBFilename de sequência de conexão ao invés do atributo InitialCatalog ou Database de sequência de conexão.Conectando-se ao banco de dados usando um nome de arquivo simplifica a implantação de seu banco de dados com o aplicativo (desde que o servidor de destino esteja executando o SQL Server Express Edition).Por exemplo, a seguinte sequência de conexão conecta a um banco de dados que está armazenado no arquivo Customers.mdf.
Data Source=.\SQLEXPRESS;AttachDbFileName=e:\data\Customers.mdf;Integrated Security=True;User Instance=True
O ASP.NET fornece uma opção conveniente para armazenar dados de um aplicativo da Web no diretório App_Data.O conteúdo do diretório App_Data não responde a solicitações da Web, o que aumenta a segurança dos dados para o seu aplicativo.Como uma conveniência adicional, você pode fornecer a variável de sequência de conexão |DataDirectory| no lugar do caminho para o diretório App_Data do seu aplicativo.Recursos ASP.NET — como o controle SqlDataSource ou os membership provider, funções, perfis de usuários, personalização de Web Parts, etc — automaticamente substituirão o caminho para o diretório App_Data para a variável de sequência de conexão |DataDirectory| ao abrir uma conexão com o banco de dados.Isso garante que o caminho para o banco de dados permaneça válido se seu aplicativo da Web for movido para um diretório diferente.O exemplo de código a seguir mostra uma sequência de conexão que inclui a variável de sequência de conexão |DataDirectory|.
Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|Customers.mdf;Integrated Security=True;User Instance=True
Observação: |
---|
O SQL servidor Express edição permite que apenas uma única conexão com um arquivo .mdf quando você se conectar com uma seqüência de caracteres de conexão com User Instance conjunto para true. |
Você pode fechar a conexão mantida pelo Visual Web Developer clicando com o botão direito do mouse no banco de dados no Solution Explorer e selecionando a opção Detach, ou clicando com o botão direito do mouse no banco de dados no Server Explorer e selecionando Close Connection.O Visual Web Developer automaticamente fechará quaisquer conexões com bancos de dados abertas quando você executar ou depurar seu aplicativo da Web.
Além disso, se você precisar liberar qualquer conexões aberta para um banco de dados do SQL Server Express Edition, você pode descarregar seu aplicativo da Web usando o Gerenciador de Serviços de Informações da Internet (Gerenciador do IIS).Você também pode descarregar uma aplicativo da Web adicionando um arquivo HTML chamado App_offline.htm o diretório raiz do seu aplicativo da Web.Para permitir que o aplicativo da Web comece responder às solicitações da Web novamente, simplesmente remova o arquivo App_offline.htm.Você precisará liberar conexões abertas para um banco de dados do SQL Server Express Edition quando você deseja copiar ou mover o banco de dados para um novo local.
Configurando um banco de dados SQL Server Express Edition
O Visual Web Developer fornece ferramentas para ajudá-lo a criar um banco de dados SQL Server Express Edition; gerenciar elementos do banco de dados, tais como tabelas, procedimentos armazenados e assim por diante; e gerenciar conexões ao banco de dados.Você pode acessar esses recursos através da janela Server Explorer.Para obter instruções sobre como criar um banco de dados no SQL Server Express Edition, consulte Como: Criar bancos de dados do SQL servidor Express edição.
Você também pode criar um banco de dados SQL Server Express Edition se conectando a um computador executando o SQL Server Express Edition e emitindo um comando CREATE DATABASE (CRIAR BANCO DE DADOS) ou usando as ferramentas de gerenciamento do SQL Server fornecidas para o SQL Server Express Edition.
O provedor padrão para os recursos do ASP.NET que armazenam dados em um banco de dados SQL Server — como associações, funções, perfis de usuários, personalizações de Web Parts e assim por diante — é configurado para se conectar ao banco de dados SQL Server Express Edition Aspnetdb.mdf no diretório App_Data do seu aplicativo.Se você ativar esses recursos de armazenamento de dados usando o provedor padrão e o banco de dados SQL Server Express Edition Aspnetdb.mdf não existir no diretório App_Data do seu aplicativo, o banco de dados será automaticamente criado.O diretório App_Data do seu aplicativo também será criado se ele não existir.
Instâncias de usuários
O SQL Server Express Edition suporta instâncias de usuários, o que significa que um novo processo será iniciado para cada usuário que se conecta a um banco de dados SQL Server Express Edition.A identidade do processo será o usuário que abriu a conexão.Para informações sobre como determinar a identidade do aplicativo ASP.NET, consulte ASP.NET Impersonation.
Quando você se conecta a um projeto de banco de dados local, o Visual Web Developer se conecta ao banco de dados SQL Server Express Edition com instâncias de usuários ativadas por padrão.Por exemplo, o exemplo de código a seguir mostra uma sequência de conexão típica usada pelo Visual Web Developer para se conectar a um banco de dados SQL Server Express Edition.
Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|Database.mdf;Integrated Security=True;User Instance=True
Embora ativar instâncias de usuários seja adequado para desenvolvimento em desktop, iniciar processos de trabalho não é apropriado em servidores Web hospedando sites para vários clientes onde os aplicativos devem ser separados e protegidos.Aplicativos ASP.NET executados com a mesma identidade de processo podem se conectar à mesma instância de usuário.Como todos os aplicativos ASP.NET são executados com a mesma identidade de processo no Windows 2000 e Windows XP Professional (por padrão, a conta ASPNET local), e aplicativos ASP.NET no mesmo pool de aplicativos são executados com a mesma identidade de processo no Windows Server 2003 (por padrão, a conta NETWORK SERVICE), servidores de hospedagem compartilhados que contêm aplicativos que não confiam uns nos outros devem desativar instâncias de usuários explicitamente.Essa funcionalidade pode ser desligada ao se conectar à instância do SQL servidor Express edição (por exemplo, emitindo o comando a seguir em um aviso de comando: osql –E –S .\SQLEXPRESS) and issuing the following Transact-SQL command.
EXEC sp_configure 'show advanced option', '1'
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'user instances enabled', 0
GO
RECONFIGURE WITH OVERRIDE
GO
Implantando um banco de dados SQL Server Express Edition
Um banco de dados SQL Express edição é composto de dois arquivos: o arquivo .mdf, que contém o esquema de banco de dados e dados; e o arquivo .ldf, que contém informações de log para o banco de dados.Quando você implantar um site da Web usando a ferramenta Copy Web Site (Copiar Site), os arquivos do banco de dados SQL Server Express Edition são copiados também.O aplicativo irá continuar a executar desde que o SQL Server Express Edition esteja instalado no servidor de destino.Para obter mais informações, consulte Como: Copiar arquivos de site com a ferramenta Copy Web Site.
Aqui estão algumas outras opções para implantar um banco dados SQL Server Express Edition.
Se você estiver fazendo uma conexão baseada em arquivo ao seu banco de dados SQL Server Express Edition, esses arquivos podem ser copiados com o seu aplicativo para um servidor destino (com o SQL Server Express Edition instalado) usando XCopy, FTP ou outra maneira.
Como o SQL Server Express Edition usa o mesmo formato de arquivo de outras versões do SQL Server 2005, você pode copiar os arquivos .mdf e .ldf para um servidor executando o SQL Server e, em seguida, juntar os arquivos como um banco de dados.
Se você desejar copiar um banco de dados SQL Server Express Edition vazio que contém um esquema de banco de dados, mas nenhum dado, as ferramentas de gerenciamento do SQL Server permitem que você gere scripts que podem ser executados no seu banco de dados de destino para duplicar o esquema do banco de dados de desenvolvimento.
Observação: |
---|
Se você estiver implantando o banco de dados SQL Server Express Edition em um servidor Web que hospeda vários sites que não confiam uns nos outros, você não pode utilizar conexões com base em arquivo ou instâncias de usuários para ajudar a garantir que seus dados não sejam expostos aos outros aplicativos no servidor.Nesse caso, é recomendável que você migre o conteúdo do seu banco de dados SQL Server Express Edition para outra versão do SQL Server 2005 que seu aplicativo ASP.NET distribuído possa acessar. |
Se o seu banco de dados SQL Server Express Edition contiver informações criptografadas, como senhas criptografadas armazenadas em um banco de dados de associações, certifique-se de que as chaves de criptografia são copiadas para o servidor de destino também.
Se você desejar mover todo o banco de dados SQL Server Express Edition, você precisará garantir que não haja nenhuma conexão aberta para o banco de dados que poderia fazê-lo ficar bloqueado.
Desbloqueando um banco de dados bloqueado
Se houver uma conexão aberta para um banco de dados, o banco de dados está bloqueado e não pode ser movido ou excluído.Conexões abertas podem ser mantidas por um aplicativo ASP.NET, pelo Visual Studio, ou por outro programa ou banco de dados cliente.Para desbloquear um banco de dados, todas as conexões abertas para o banco de dados devem ser fechadas.Você pode fechar as conexões abertas das seguintes maneiras:
Você pode fechar a conexão mantida pelo Visual Web Developer clicando com o botão direito do mouse no banco de dados no Solution Explorer e selecionando a opção Detach, ou clicando com o botão direito do mouse no banco de dados no Server Explorer e selecionando Close Connection.O Visual Web Developer automaticamente fechará quaisquer conexões com bancos de dados abertas quando você executar ou depurar seu aplicativo da Web.
Você pode fechar qualquer conexão mantida por um aplicativo ASP.NET encerrando o aplicativo.Isso pode ser feito usando o Gerenciador do IIS ou colocando um arquivo denominado App_offline.htm no diretório raiz do aplicativo ASP.NET (você deve remover esse arquivo para reiniciar o aplicativo).
Você pode fechar qualquer conexão mantida por outras fontes, como um aplicativo do Windows Forms, saindo do programa.
Consulte também
Conceitos
Visão geral sobre propriedades de perfil do ASP.NET