我一直在尝试让我们的旧的 32 位服务 (.dll) 在 Windows 2008 (R1 和 R2) 上运行。
该服务访问系统 DNS 以进行 ODBC 连接,其次它使用正常的 WebClient 请求执行一些统计 HTTP 调用(一种将数据报告回我们的服务以进行统计的 PING 函数)。
我们可以通过唯一的界面来查看它是否正在运行,即查看 SQL 假脱机/记录是否随着“LastUpdate”而发生变化,从中我可以得出结论,“某些东西”没有起作用。
该服务在 Windows 2000 和 Windows 2003 服务器上已顺利运行了近 8 年。
现在,当我们将旧服务器移入云中时,我正在尝试看看是否也可以让这个老朋友工作。
不知怎么的,它不起作用。我尝试查看 windows 日志,检查是否有任何错误迹象。但什么也没发现。
我的猜测是,它只是缺少一些“权利”,因为 Windows 2008 更加封闭/安全。
因此,我也尝试为该服务创建一个“特殊用户帐户”,并允许该服务以具有桌面访问权限的帐户登录。
目前我不在乎我们必须将安全性降到多低,因为对我来说什么都行不通。我正在非生产服务器上测试它,因此安全性没有问题——目前还没有。
有人知道我需要做什么吗?
我缺少哪种类型的安全权限、设置或策略?
我一直在检查有关“64 位上的 32 位”等的帖子,但到目前为止还没有找到任何东西 :-(
我迷路了...
是让它运行、在云中安装和保留旧的 Windows 2003 服务器的唯一方法。叹???
答案1
如果它使用 ODBC DSN 进行连接,您是否必须手动进行设置?
值得注意的是,ODBC 管理控制台有两个版本,一个是 32 位,另一个是 64 位。在一个版本中定义的数据源不会出现在另一个版本中。
64 位版本是默认版本,可通过管理工具文件夹打开。32 位版本位于%SystemRoot%\SysWOW64
。令人困惑的是,两个可执行文件都名为odbcad32
。
尝试运行 32 位控制台并在其中定义系统 DSN。可能是您的 DLL 在注册表的错误部分中查找数据源,并且没有找到任何内容。