起因:

         客户服务器运行环境要求提高安全性,建议数据连接串采取 加密措施 ,或改用 Window 验证 连接数据库服务 。于是我们打算选择后着,将后台服务(Window Server)数据库连接串调整为Window 验证。

         过程如下:
              事先,检查数据库验证方式为混合验证方式,并按照如下格式修改程序连接串, 但启动服务后,报错。

             <add name="***_ConnectionString" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=****;Data Source=.\MSSQL2008R2" />
  

         启动程序报错日志 :
[2017-11-13 03:40:21/363294781]消息:System.Data.SqlClient.SqlException (0x80131904): 无法打开登录所请求的数据库 "****"。登录失败。
用户 'CNTJBCWG1\CNTJW16BCSQL1$' 登录失败。

            我们认为是权限问题,于是:

            将window server 服务指定管理员帐号运行 (管理员帐号名:sql_server)
            同时在  sql server服务器 新建登陆名,搜索 sql_server 帐号,并添加 ,同时指定帐号 服务器角色 sysadmin。

    接着启动程序,仍报异常:

  [2017-11-13 04:39:06/366820156]消息:System.ServiceModel.AddressAccessDeniedException: HTTP 无法注册 URL http://+:9529/。
进程不具有此命名空间的访问权限(有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=70353)。 ---> System.Net.HttpListenerException: 拒绝访问。

    网上查了,执行如下命令:


               netsh http add urlacl url=http://+:9529/ user="\sql_server"

  提示 添加url 成功。

   接着重启服务, 又报了一个异常: 提示无法访问本服务运行目录中的一个子目录。

       仍然是权限问题,将服务运行目录 设为充许  sql_server 完全读写控制。


       再次启动服务,一切正常。

 

 posted on 2017-11-13 18:01  仰光  阅读(232)  评论(0编辑  收藏  举报