gpt4 book ai didi

vb.net - Windows 服务未连接到 SQL Anywhere 数据库

转载 作者:行者123 更新时间:2023-12-04 05:33:02 25 4
gpt4 key购买 nike

我已经构建了一个应用程序来连接到 MySQL 数据库和 SyBase - 使用 VB.NET 和适当的 ODBC 连接的 SQL Anywhere 数据库。在我们不得不让这个应用程序成为一个服务,无论是否有任何用户登录时,它都会在后台运行,这一切都很好。

我将应用程序构建到服务中,安装后,该服务能够成功连接到 MySQL DB,但在连接到 SyBase 时出现以下错误(请注意连接字符串与应用程序中使用的完全相同)

ERROR [08001] [Sybase][ODBC Driver][SQL Anywhere]Database server not found

项目安装程序-服务进程安装程序1配置为localsystem

这里最令人毛骨悚然的是,mysql连接成功,当同一个应用程序不是服务时,连接到sybase却成功了。一旦它成为一项服务,它就开始失败。我有一个 Windows 7 64 位工作站和 VS 2010。

在过去的一周里,我一直在尝试做每一件事来修复它,但似乎没有任何效果。任何建议将不胜感激。

最佳答案

看起来您正在使用 DSN 连接到 SQL Anywhere。

首先,确保您已将其配置为系统 DSN。然后,确认您使用的是 TCP/IP 连接协议(protocol)(ODBC 管理 -> 选择系统 DSN 选项卡 -> 在列表中选择 DSN -> 单击配置 -> 转到网络选项卡)并且不是 共享内存。

在尝试连接到 SQL Anywhere 数据库服务器的 Win 服务中,使用共享内存将起作用。我怀疑这是问题所在,因为您可以使用相同的连接字符串从桌面应用程序进行连接。

完成这项工作的一种方法是将 SQL Anywhere 数据库作为网络服务器启动(开始 -> 所有程序 -> Sql Anywhere 12(或 11,取决于您的设置)-> SQL Anywhere -> 网络服务器。

这应该运行 dbsvr12.exe,它将开始监听 TCP 端口上的连接。

然后,将 Links=tcpipHost=localhost 添加到您的 Win 服务连接字符串并尝试一下!

关于vb.net - Windows 服务未连接到 SQL Anywhere 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12345970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com