在我写了《在SQL Server Express版和Compact版之间做出选择》之后,园子里有些朋友问到SQL Server精简版(sqlce)支不支持ASP.NET?当时我也不确定,我自己测试过确实不行,但是觉得怪怪的,没有道理不支持啊!
今天看了Steve Lasker的blog,终于搞清楚了!
由于sqlce默认不支持ASP.NET,很多用户因此对MS提出请求,不断抱怨,甚至恐吓(如果你不让它支持,我就使用XX产品)。Steve Lasker终于坐不住,出来澄清这一切
其实sqlce的市场定位非常明确,主要是为了解决智能客户端的离线数据存储和同步问题。这个在Hosting Toolkit SQL Server可以协助你在Web服务器上部署SQL Server Express。
那么,ASP.NET到底能不能使用sqlce作为数据存储呢?可以!
默认情况下,在ASP.NET的工作进程中打开sqlce的数据库连接时,sqlce将被封锁。你可以通过下面的代码解除这个限制:
AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true)
要注意的是,在ASP.NET中不能使用sqlce的数据同步功能。
总之,多大的鞋配多大的脚,大家还是不要在ASP.NET中使用sqlce,如果偏要用,那请注意后果了!
参考:
SQL Server Compact Edition under ASP.net and IIS
SqlCeConnection Class (System.Data.SqlServerCe)