SQL Server 远程过程调用失败。[0x800706be]
正常的手机APP,突然不能登录了,因为一开始就需要连接SQL Server
数据库,猜想是数据库出现问题了。
服务器的环境为 :Win7 64位系统
数据库: SQL Server 2008 R2
一 查看数据库服务运行状态
右击 计算机 -- 管理 -- 服务和应用程序 -- SQL Server 配置管理器
-- SQL Server服务
显示着:
远程过程调用失败。[0x800706be]
果然数据库出现了问题。
二 查看数据库是否允许远程
(一) sa 登录 数据库
开始 -- Microsoft SQL Server 2008 --
SQL Server Managment
Studio
SQL Server 身份验证 登录 sa
123
(二) 查看整个数据库的远程选项
(1) 右击 数据库实例 DELL-PC-15(SQL Server
10.50.1600 - sa) -- 属性 -- 连接
仍然勾选着
允许远程连接到此服务器
(2) 右击 数据库实例 DELL-PC-15(SQL Server
10.50.1600 - sa) -- 方面
在方面 列表中 选择 服务器配置
以下两项仍然为 Ture
RemoteAccessEnabled True
Remote DacEnabled True
以上选项都是正常的
三 查看手机APP涉及的数据库权限
1 数据库yjs_db的权限
右击
yjs_db -- 属性 -- 权限
用户
NT AUTHORITY\NEWWORK
SERVICE
其权限
仍然勾选着
插入、创建表、更改、更新、连接 、删除、选择、引用、执行等
2 登录用户sa 相关项
(1) 安全性 -- 登录名 -- 右击 sa
-- 属性
(2) 用户映射 -- 点选
yjs_db
仍然勾选
db_owber 和 public 两项
(3) 状态
允许连接到数据库引擎 授予
登录
启用
以上选项都是正常的
四 查询原因
1 网上搜寻 大部分都提到 ,在控制面板中去掉 如下项目
Microsoft SQL Server 2012
Express LocalDB
2 开始 -- 控制面板 --
程序和功能
里面多出了类似的
Microsoft SQL Server 2016 LocalDB
右击 把它 卸载
3 按 步骤一 查看数据库服务运行状态,果然恢复了正常
4 手机登录APP ,仍然无法运行
五 数据库所在文件夹有关的权限
(一)查看数据库文件夹的权限
数据库文件位于 D:\yjs_db文件夹 之下 yjs_db.mdf ,
yjs_db_log.ldf
1 右击 文件夹 yjs_db -- 属性 --
安全
2 组或用户名
Network
Service
3 权限
全部控制
等等
都是正确的
(二)数据库服务的登录用户
1 按 步骤一
数据库服务运行状态
可以看到
SQL Server(MSSQLSERVER) 登录身份为 NT
AUTHORITY\LocalService
可见于上面数据库所在文件夹的用户 Network
Service,不一致了。
2 修改登陆身份为 Network
Service
双击 SQL
Server 那行, 从弹出的画面中,从 登录身份 的内置用户 中
选择为
Network Service
点 确定
-- 是 ,
等待一会儿,等服务重启后, 登录身份 改为: NT
AUTHORITY\NetworkService
到此手机的APP就能正确的访问远程的SQL
Server 数据库了。
3 说明
可能是安装其它软件,捎带着安装了 Microsoft SQL
Server 2016 LocalDB
同时改了数据库登录身份为LocalService,而数据库文件夹的访问者是NetworkService,
两者不一致导致无法访问,只要改为一致即可。
加载中,请稍候......