localdb连接时,提示sql server过期

red-fly 2020-08-04 03:42:34
我的是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
过程也和我的不一样,我的根本就不可选择,不知道咋办
...全文
223 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
red-fly 2020-08-11
  • 打赏
  • 举报
回复
正如楼上所说的,我完全抛弃localdb后,安装一个正式版的sql server,然后修改网站的连接字符串,测试成功。
吉普赛的歌 2020-08-05
  • 打赏
  • 举报
回复
引用 1 楼 吉普赛的歌 的回复:
不要在VS上纠缠了, 根本没有必要, 那是一个残疾版本。 直接安装一个正式的 sqlserver 版本吧。比如:2017, 2019 https://blog.csdn.net/yenange/article/details/78622559
试了,没用[/quote] 我的意思是安装一个正式的 sqlserver 版本, 把VS的连接改到正式的 sqlserver 上面去。 你安装了,又不改 VS 的连接, 那跟不安装有什么区别呢?
red-fly 2020-08-05
  • 打赏
  • 举报
回复
引用 1 楼 吉普赛的歌 的回复:
不要在VS上纠缠了, 根本没有必要, 那是一个残疾版本。

直接安装一个正式的 sqlserver 版本吧。比如:2017, 2019
https://blog.csdn.net/yenange/article/details/78622559

我又下载了一个sql server 2008 R2标准版本,升级时输入了序列号,但是后面依然没法使用。我再试下全新安装一个试试



引用 1 楼 吉普赛的歌 的回复:
不要在VS上纠缠了, 根本没有必要, 那是一个残疾版本。

直接安装一个正式的 sqlserver 版本吧。比如:2017, 2019
https://blog.csdn.net/yenange/article/details/78622559

试了,没用
shoppo0505 2020-08-05
  • 打赏
  • 举报
回复
在数据库机器上打开vs2015后再试试
red-fly 2020-08-05
  • 打赏
  • 举报
回复
引用 4 楼 吉普赛的歌 的回复:
[quote=引用 1 楼 吉普赛的歌 的回复:]不要在VS上纠缠了, 根本没有必要, 那是一个残疾版本。
直接安装一个正式的 sqlserver 版本吧。比如:2017, 2019
https://blog.csdn.net/yenange/article/details/78622559

试了,没用[/quote]

我的意思是安装一个正式的 sqlserver 版本, 把VS的连接改到正式的 sqlserver 上面去。
你安装了,又不改 VS 的连接, 那跟不安装有什么区别呢?[/quote]
后来我也正是这样想的,我在自己的电脑上安装了标准版,修改了连接串,是可以正常连接上去使用的,我那台电脑还没有重装好,等装好我这再试试,希望这个方法是对的
吉普赛的歌 2020-08-04
  • 打赏
  • 举报
回复
不要在VS上纠缠了, 根本没有必要, 那是一个残疾版本。 直接安装一个正式的 sqlserver 版本吧。比如:2017, 2019 https://blog.csdn.net/yenange/article/details/78622559

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧