好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

kis专业版登录时出现问题终极解决全过程.doc

17页
  • 卖家[上传人]:第***
  • 文档编号:99102111
  • 上传时间:2019-09-17
  • 文档格式:DOC
  • 文档大小:565.50KB
  • / 17 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 金蝶KIS专业版“登录时出现问题,请重新输入”终极解决全过程目录金蝶KIS专业版“登录时出现问题,请重新输入”终极解决全过程 1一、 从客户端PING服务器,检查网络状况 2二、 测试访问服务器共享文件夹 2三、 修改host解析文件 3四、 关闭或配置防火墙 3五、 关闭数据执行保护 3六、 重新安装msdtc组件 3七、 重新分析过程及问题的根本原因 3八、 终极解决办法之一:注册表添加别名法 8九、 终极解决办法之二:客户端网络工具添加别名法 9十、 终极解决办法之三:ODBC添加数据库访问别名法 9十一、 其他可能遇到的情况 15十二、 总结 16 好久没做专业版,现在做了一个想不到居然遇到了传说的“登录时出现问题,请重新输入”提示如下图所示:我狂晕啊,印象中好像很多人都遇到过,想不到我也会栽到它头上我装了那么多K3经过一番配置都没再出过登录不了的问题啊!由于是所有客户端都这样提示,所以判断肯定服务器配置存在问题,好吧,动手排查:一、 从客户端PING服务器,检查网络状况结果如下:哎呀,不管是用IP地址“192.168.1.200”还是用服务器名称“KIS”,返回值都正常,看来网络相当正常。

      二、 测试访问服务器共享文件夹从开始――运行中输入“\\192.168.1.200”,结果出错,提示如下:由于错误,登录失败: 用户帐户限制可能的原因包括不允许空密码,登录时间限制,或强制的策略限制服务器无法登录Windows NT帐户 ‘192.168.1.200\GUEST'看来是网络权限配置过于严格,于是采取以下办法处理:1.右击我的电脑,选择“管理”,在左边依次展开“计算机管理”――“系统工具”――“本地用户和组”――“用户”,检查“GUEST”用户是否是打“X”禁用,如果是,则右击属性,然后取消禁用选项2.从“开始”――“运行”,输入“gpedit.msc”,进入到组策略管理界面下,依次展开“计算机配置--->Winsows设置----->安全设置--->本地策略--->用户权利指派”,看看右边有一行:"拒绝从网络访问这台计算机 "看它的属性里有没有guest一项,若有,则删除3.开始――运行,输入gpedit.msc回车—计算机配置—windows设置—安全设置—本地策略—安全设置—“账户:使用空白密码的本地账户只允许进行控制台登录”--改为“已禁用”OK,再测试,试了几台客户端都正常了。

      我有预感,不会这么简单!果然,到最后两台,功亏一篑啊,不行!!!不过,现在服务器肯定是没有问题了,得查客户端了,根据网友们总结的办法,一步一步排查吧三、 修改host解析文件找到C:\WINDOWS\system32\drivers\etc下的HOSTS文件,用记事本打开并添加服务器的记录(这个前提要求服务器的IP得是手工指定的IP啊,要是动态获取的话,今天添加了今天有用,明天IP变了就白添加了):192.168.1.200 KIS四、 关闭或配置防火墙关闭防火墙包括WINDOWS自带的,或者其他软件防火墙如果不关闭的话,也可以通过其他设置,如开放端口TCP:135、139、445、1069、1090、1433、2967、6985、6988;UDP:137、445、1033、1434、1058、2123、3000或者采用添加到白名单:设置--详细设置--网站防问规则--白名单--增加192.168.1OK,其中一台通过以上步骤后也可以了但另一台死活不行,只能继续其他可能影响的设置修改五、 关闭数据执行保护通过修改BOOT.INI文件,添加或修改参数:NoExecute=AlwaysOff六、 重新安装msdtc组件1、删除注册表中的键: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC HKEY_CLASSES_ROOT\CID 2、运行命令停止MSDTC服务:net stop msdtc3、运行命令卸载MSDTC服务:msdtc -uninstall4、运行命令重新安装MSDTC服务:msdtc –install结果依旧,最后这台电脑真的是顽固啊!好吧,网上能够找到的都试完了,看来得自已动手分析了。

      七、 重新分析过程及问题的根本原因仔细观察登录时的错误提示,当服务器处输入的是计算机名“KIS”时,如下图:当服务器处输入的是IP地址“192.168.1.200”时,如下图:得到的结论是:输入IP和计算机名,得到的结果不相同输入IP能够获取账套信息,而输入计算机名则连账套信息均不能获取但是,既然输入IP已经获取到账套信息,由于我们知道KIS的专业版的账套信息是存放在SQL数据库中的,说明通过IP连接数据库是一切正常的了那么,现在我们已经在服务器中输入IP地址来连接数据了,为什么选择了账套后再确定,还是登录不了呢?难道金蝶最终并没有真正使用IP地址来连接数据库,而是又重新使用计算机名来连接了吗?为了验证我的想法,我在服务器上打开了账套信息数据库“AcctCtl”,找到其中的表“t_ad_kdAccount_gl”呵呵,果然是这样,其中的“FConnectString”字段记录了每个账套的连接字符串,形如:“Provider=SQLOLEDB.1;User ID=KISAdmin;Password=ypbwkfyjhyhgzj;Data Source=KIS;Initial Catalog=KIS_Sample”,根据我们二次开发的经验,金蝶KIS专业版在通过登录时,获取到账套信息后,显然是用账套信息中的连接字符串再进一步的查询数据了。

      上述分析也说明了为什么先前一台电脑通过修改HOSTS能够正常访问了:我们在登录时输入的IP地址仅用于获取账套信息,而之后系统再次使用计算机名访问数据库,所以当由于某些系统服务未开启或防火墙软件的原因,计算机名不能正确解析时,HOSTS文件就生效了,帮助系统将计算机解析为IP地址,然后即可正常访问了但是,为什么最后一台还是不行呢?金蝶KIS专业版将错误提示封装了,就好像IE浏览器的“错误友好提示”一样,让人摸不着头脑那么要尝试找找有没有更详细的信息了,经过一番搜索,在C:\WINDOWS\SYSTEM32\KISCOM\中找到一个登录的错误日志文档“KISSVRMGR_1001.log”,用记事本打开一看,内容主要形如:01-29 09:25:24 [ERROR] AcctMgr::GetAccountList() Error number: -2147217843 Source: Microsoft OLE DB Provider for SQL Server Desc: 用户 'KISAdmin' 登录失败01-29 09:25:48 [ERROR] AcctMgr::GetSuperPropString() Error number: -2147467259 Source: Microsoft OLE DB Provider for SQL Server Desc: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。

      哎……,还是封装过的,不好判断啊那么,有没有办法显示更直接的提示呢?既然用KIS专业版不行,那么咱们用SQL自带的客户端工具来登录试试!!!客户端一般没有安装SQL,没关系,打开随身携带的绿色版SQL管理工具“SQLManager”(也就是企业管理器和查询分析器的独立打包)使用查询分析器“isqlw.exe”来测试登录效果输入IP地址和用户名密码,果然能够正常登录再输入计算机名和用户名密码,也同样不出意料,没能够正常登录,弹出了以下错误:细心的读者您注意到了吗?错误提示中有什么东西和一般不同?对,就是多了“[Multi-Protocol]”这个词上网再一番狂搜,获得许多杂乱的信息,我将各处信息综合整理如下:客户端与服务器的连通需要通讯库的支持,SQL Server 2000 的通讯库NET-LIBRARY网络协议通信库支持多种网络协议:1. Named pipes协议(命名管理),使用NT SMB端口(TCP139,UDP137,138)来进行通信; 2. IP Sockets协议(TCP/IP),使用TCP1433端口;3. Multi-Protocol(多协议),默认情况下使用TCP随机端口,客户端需要支持NT RPCs;4.NWLink协议;5.AppleTalk (ADSP)协议;6.Banyan Vines协议。

      但一般来说,我们平常使用都是选择TCP/IP或命名管道协议通信库遇到SQL Server 不存在或访问被拒绝的问题,我们就应该检查这些协议的配置情况,保证服务器和客户端使用同一种通讯协议即可检查服务器端的网络配置是否启用了命名管道、 TCP/IP 协议等等我们可以利用 SQL Server 自带的服务器网络使用工具 点击:程序 -> Microsoft SQL Server -> 服务器网络使用工具,打开该工具后看到的画面如下图所示: 从这里我们可以看到服务器启用了哪些协议一般如上图可能只启用了命名管道和TCP/IP这两种协议,所以客户端如果使用其他协议连接将会连接不上如需进一步检查 SQK Server 服务默认端口的设置,我们可以点中 TCP/IP 协议,再点击"属性",如下图所示: 一般而言,我们使用 SQL Server 默认的1433端口对于"隐藏服务器"选项,只是限制客户端通过枚举服务器来枚举这台服务器,仅是保护功能,不影响连接 客户端连接服务器是也是通过NET-LIBRARY网络协议通信库实现的,微软的MDAC组件提供了NET-LIBRARY网络协议通信库,如DBNMPNTW.DLL——命名管道协议和DBMSSOCN.DLL——TCP/IP协议,其上层的数据库访问基本组件ADO、OLEDB、ODBC、DB-LIBRARY等都是在此基础上实现与服务器的数据访问通讯的。

      打开客户端网络工具,如下图所示:如果没有安装SQL客户端工具,但成功安装MDAC28之后,也可以对系统注册表项:HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\MSSQLServer\Client\ConnectTo下面各配置项的查看和修改来实现对客户端网络使用属性的配置这个配置节点下面的配置项实际上该客户端可以连接的服务器别名列表服务器的别名是客户端应用程序用来连接的服务器的伪名称,其连接属性参数中的服务器是真正的服务器名称,两者可以相同或不同服务器别名的定义规则如下:<服务器别名>=<网络协议通信库>,<连接属性> 假定我们有一个SQL SERVER 2000服务器SQL_SERVER,具有实例TESTDATA,IP地址为10.10.10.10,定义其别名为DATASERVER,服务器上同时支持命名管道协议和TCP/IP协议,且TCP/IP的默认端口为1433 对于命名管道协议,则别名配置如下: DATASERVER = DBNMPNTW,SQL_SERVER\TESTDATA 或 DATASERVER = DBNMPNTW,10.10.10.10\TESTDATA 注意,这里的服务器机器。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.