我有一个简单的Windows服务,我们已经使用了多年。我们在内部开发它,但多年来没有人接触过它。它更新位于同一服务器上的SQL数据库中的几个表。我将它安装在虚拟服务器上,它似乎正在运行,但没有更新SQL数据库。
我相信它使用CLICONFG中设置的Alias连接到数据库。它使用指向本地SQL EXPRESS数据库的命名管道连接进行设置。
它在安装了SQL EXPRESS默认实例的服务器上正常运行。我能找到的唯一区别是当前服务器有一个命名实例(。\ SQLEXPRESS)。但是,我已经使用Named实例而不是默认实例在其他服务器上成功运行,但我似乎无法使用这个实例。
我搜索过并搜索过,无法弄清楚出了什么问题。 我已经检查了SQL中可能存在的权限问题,并且所有内容似乎都符合我为服务选择的登录信息。
谢谢!
答案 0 :(得分:0)
感谢大家的建议。我想通了!
原来它是通过cliconfg中的命名管道连接设置连接到SQL。
我已经使用我们的标准别名设置了命名管道连接....以及指定SQL命名实例的管道....这对该服务器不起作用。
该服务期待一个默认实例。在没有修改我们的标准命名管道配置的命名实例之前,该服务已正常工作,但这是一个32位的Windows服务器。这次,在64位Windows服务器上,它无法正常工作。
...所以
我使用ProcMon来确定它正在寻找...然后添加了第二个名为“(local)”的命名管道连接而不是我们的标准别名。我将管道设置为与我们的其他连接完全相同。我将标准的命名管道连接与我们的标准别名一起留下了。
重新启动,它有效!