重装了系统,实在不想在折腾 MSSQL 那庞大的身躯了,只是想简简单单使用 LocalDB,但是在发布网站时,碰到了 IIS 连接 LocalDB 的问题,经过几个小时的折腾,完美方案如下:
总体步骤
- 用管理员运行命令行窗口
- 使用
sqllocaldb
命令对 LocalDB 进行共享- 在 VS 的 SQL 查询窗口中,将对应的 IIS 应用程序池添加到数据库的管理员角色中
- 重启电脑(这一步很重要,因为重启后,共享的结果才生效)
- 修改连接字符串
- 一切照旧
开始详细步骤:
首先,用管理员身份运行命令行窗口,输入以下命令:
sqllocaldb share MSSQLLocalDB MyDB
// 如果想停止共享,输入以下命令
// sqllocaldb unshare .\MyDB
回车后,可以看到创建成功的标志。
然后,开始添加 IIS 的应用程序池到数据库的管理员角色中,依次输入以下 SQL 脚本,每输完一句脚本,请执行以下。
// 创建登录账号
create login [IIS APPPOOL\ASP.NET v4.0] from windows;
// 添加到管理员角色中
exec sp_addsrvrolemember N'IIS APPPOOL\ASP.NET v4.0', sysadmin
注:根据自己的 IIS 应用程序池来进行添加。
这时,一定要记住:重启电脑!
重启完之后,用任意连接工具(VS2017 自带的 SQL 对象资源管理器、Navicat、等),测试连接。
服务器(主机名):(localdb)\.\MyDB
验证:Windows 验证
一般来说,直接可以测试成功,然后修改数据库连接字符串即可,如下所示:
Data Source=(localdb)\.\MyDB;AttachDbFileName=D:\xxxx.mdf;Integrated Security=True
// 以下链接字符串,不知道是配置原因还是什么,一直没有连接成功,
// 所以,最终采用了上面(指定 MDF 文件)的连接字符串。
// Data Source=(localdb)\.\MyDB;Initial Catalog=xxxx;Integrated Security=True
至此,全部完成。
网友评论