quinta-feira, 8 de outubro de 2009

SQL Server Compact is not intended for ASP.NET development

O SQL Server Compact é uma versão do SQL Server bastante restrita em termos de recursos, mas que roda in-process, ou seja, não roda como um serviço. Desta forma, aplicações que o usam não precisam de direitos daministrativos na sua instalação, o deploy destas aplicações é simplificado (em relação a instalar outras edições do SQL Server), e o uso de recursos é baixo. Roda até em Windows Mobile!

Bem, tentei usar um banco do SQL Server Compact Edition em um site ASP.NET de teste que estava fazendo pra dar aula. Aí apareceu a mensagem de erro "SQL Server Compact is not intended for ASP.NET development". Isto porque, como a mensagem diz, o SQL Server Compact não foi projetado para desenvolvimento ASP.NET. Algo a ver com problemas de acesso multi-usuário. Mas se você quiser usá-lo só para um teste rápido, basta colocar no seu Global.Asax o seguinte código:


Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs
AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", True)
End Sub

Desta forma você "está se responsabilizando" pelo uso do SQL CE na sua aplicação ASP.NET, e o erro não volta a ocorrer.