加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

解决SQLServer远程过程调用失败

(2019-08-23 11:09:09)
标签:

手机app

远程访问sql数据库

远程过程调用失败

杂谈

SQL Server 远程过程调用失败。[0x800706be]


 正常的手机APP,突然不能登录了,因为一开始就需要连接SQL Server 数据库,猜想是数据库出现问题了。


服务器的环境为 :Win7 64位系统 
数据库: SQL Server 2008 R2


一 查看数据库服务运行状态

  右击 计算机 -- 管理 -- 服务和应用程序 -- SQL Server 配置管理器 -- SQL Server服务
   显示着: 远程过程调用失败。[0x800706be]
  果然数据库出现了问题。

解决SQLServer远程过程调用失败


二 查看数据库是否允许远程

 (一) sa 登录 数据库  

  开始 -- Microsoft SQL Server 2008 --  SQL Server Managment Studio 
  SQL Server 身份验证 登录  sa  123

解决SQLServer远程过程调用失败


 (二) 查看整个数据库的远程选项

 (1) 右击 数据库实例 DELL-PC-15(SQL Server 10.50.1600 - sa) -- 属性 -- 连接
      仍然勾选着  允许远程连接到此服务器

解决SQLServer远程过程调用失败



 (2) 右击 数据库实例 DELL-PC-15(SQL Server 10.50.1600 - sa) -- 方面
   在方面 列表中 选择 服务器配置
   以下两项仍然为 Ture
      RemoteAccessEnabled  True
      Remote DacEnabled    True

解决SQLServer远程过程调用失败


  以上选项都是正常的

三 查看手机APP涉及的数据库权限

   1 数据库yjs_db的权限
     右击 yjs_db -- 属性 -- 权限 
     用户  NT AUTHORITY\NEWWORK SERVICE 
     其权限     仍然勾选着 
       插入、创建表、更改、更新、连接 、删除、选择、引用、执行等

解决SQLServer远程过程调用失败


   2 登录用户sa 相关项
  
   (1) 安全性 -- 登录名 -- 右击 sa -- 属性
 
   (2) 用户映射 -- 点选 yjs_db
      仍然勾选 db_owber 和 public 两项

解决SQLServer远程过程调用失败


   (3) 状态  
      允许连接到数据库引擎  授予
      登录   启用

解决SQLServer远程过程调用失败


 以上选项都是正常的

四 查询原因

  1 网上搜寻 大部分都提到 ,在控制面板中去掉 如下项目
   Microsoft SQL Server 2012 Express LocalDB

  2 开始 -- 控制面板 --  程序和功能
  里面多出了类似的
  Microsoft SQL Server 2016 LocalDB
  右击 把它 卸载

解决SQLServer远程过程调用失败


  3 按 步骤一 查看数据库服务运行状态,果然恢复了正常

  4 手机登录APP ,仍然无法运行

五 数据库所在文件夹有关的权限

  (一)查看数据库文件夹的权限

     数据库文件位于 D:\yjs_db文件夹 之下 yjs_db.mdf , yjs_db_log.ldf

   1 右击 文件夹 yjs_db -- 属性 -- 安全 
   2 组或用户名     Network Service 
   3 权限      全部控制     等等
    都是正确的

解决SQLServer远程过程调用失败



   (二)数据库服务的登录用户

    1 按 步骤一  数据库服务运行状态

     可以看到  SQL Server(MSSQLSERVER) 登录身份为 NT AUTHORITY\LocalService
    可见于上面数据库所在文件夹的用户 Network Service,不一致了。

    2 修改登陆身份为 Network Service

     双击 SQL Server 那行, 从弹出的画面中,从 登录身份 的内置用户 中
     选择为 Network Service
     点 确定 -- 是 ,  
     等待一会儿,等服务重启后, 登录身份 改为: NT AUTHORITY\NetworkService

解决SQLServer远程过程调用失败


   到此手机的APP就能正确的访问远程的SQL Server 数据库了。

    3 说明
     可能是安装其它软件,捎带着安装了 Microsoft SQL Server 2016 LocalDB
     同时改了数据库登录身份为LocalService,而数据库文件夹的访问者是NetworkService,
两者不一致导致无法访问,只要改为一致即可。

  



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有