localdb连接时,提示sql server过期
我的是Mvc5 B/S程序,用vs2015开发,不知道这个问题究竟放在哪个板块更合适了。
vs2015向导生成一个默认选项的mvc5程序,然后添加自己的功能(登录数据库的部分没有修改),发布后部署到服务器上(一台普通电脑),我安装相关环境,然后网站可以正常访问,也可以注册帐户、登录帐户。
上个月底,突然发现无法登录帐号(网站是可以正常访问的),提示:
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL Network Interfaces, error: 50 - 发生了 Local Database Runtime 错误。在 LocalDB 实例启动期间出错: 无法启动 SQL Server 进程。 )
进一步查看系统日志,发现一条消息“SQL Server evaluation period has expired.”,来源为“MSSQL$SQLEXPRESS”,事件ID为 17051。
以上为问题的相关线索。下面说明电脑的一些环境。
由于这数据库我弄不清楚具体情况,所以当时安装的具体过程不记得了,大致如下:
1. 有安装 SqlLocalDB.msi,其名称为 SQL Server 2016 LocalDB
2. 有安装 SQLEXPR_x86_ENU,名称应该是 sql server 2008。安装之后,需要安装sql实例,在它的界面上选择安装新实例,在序列号的界面上有两个选项,但默认选中了sql express,而且选项是灰色的,不能改变
3. 有安装 SSMS-Setup-CHS,数据库连接管理,版本应该是 2016
4. 安装了vs2015,想用它来查看实际的数据库文件
问题就是网站无法访问数据库,这是需要解决的,另外我还有以下疑问:
1. sql server、sql express、localDb,三者是啥关系?既然网站使用localDb,为什么还要连接sql server?
2. 网站的连接字符串:
Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\testdb.mdf;Initial Catalog=testdb;Integrated Security=True
这个连接字符串中的内容,我只是修改了数据库文件名,其它没有修改,在ssms中连接的也是“(LocalDb)\MSSQLLocalDB”。
仔细研究了一下这个连接字符串,其实就是连接的本地数据库服务器,具体的数据库就是网站的数据库文件。这个数据库服务器以及网站的数据库文件,都是可以在vs2015中连接、打开、查看,而且用ssms也可以连接、打开、查看其中的数据,但为什么就是在iis网站上无法连接?
3. 在安装sql 实例时,的确是“express”版本,这个版本本来是免费,现在怎么又有过期一说?
4. 在ssms的配置管理界面中,“SQL Server(SQLEXPRESS)”、"SQL Server Agent(SQLEXPRESS)"服务都无法启动
很早之前用sql server2000,就是一个数据库,其包含了数据库服务和管理界面,整体思路清晰、好用,现在这么多个组件,之间是啥关系,究竟是如何协同工作的,搞得稀里糊涂的。
搜索出来一个网址:
http://www.51testing.com/html/68/262468-234238.html
过程也和我的不一样,我的根本就不可选择,不知道咋办