我目前正在尝试运行一个经典的 ASP 应用程序,我已获得该应用程序的源代码。我想在我的 64 位 Windows 7 开发计算机上进行设置,但在使用基于 ODBC 的数据连接到 MySQL 实例时遇到了问题。
我看到了以下错误:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found
and no default driver specified
/includes/<File Name>.asp, line 100
我尝试过的:
- 该连接无 DSN。
- 该应用程序在具有本地系统权限的 IIS 应用程序池下运行。可以在进程监视器中看到 w3wp.exe 在 NT AUTHORITY/SYSTEM 下运行。
- 该应用程序在 IIS 应用程序池下运行,允许运行 32 位应用程序。
- 尝试过仅安装 Connector/ODBC 5.1.10 64 位版本http://dev.mysql.com(此时 C:\Windows\SysWOW64\odbcad32.exe 下没有列出驱动程序,但 C:\Windows\system32\odbcad32.exe 下有列出)
- 尝试过仅安装 Connector/ODBC 5.1.10 32 位版本http://dev.mysql.com(此时 C:\Windows\system32\odbcad32.exe 下没有列出驱动程序,但 C:\Windows\SysWOW64\odbcad32.exe 下有)
- 已尝试安装 Connector/ODBC 5.1.10 32 位和 64 位版本。
已验证司机姓名拼写无误。以及此处的其他检查http://support.microsoft.com/kb/306345。
驱动程序 = {MySQL ODBC 5.1 驱动程序};服务器 = localhost;数据库 = DBName;用户 = root;密码 = 密码;选项 = 3
附加信息:
我在进程监视器中监视,两个结果是:
路径未找到(正在查找 .asp/web.config,这似乎很奇怪。缓冲区溢出
两个条目均显示:
用户: NT AUTHORITY\SYSTEM
进程:C:\Windows\SysWOW64\inetsrv\w3wp.exe C:\Windows\SysWOW64\odbcint.dll
我很困惑,有人能就如何在我描述的上下文中运行它提出建议吗?
答案1
现在问题解决了。记录在这里,以防对其他人有用。
这个问题比乍一看要简单得多。问题在于应用程序使用了命名和未命名数据源 (DSN / DSN-Less) 的混合。
在我设置应用程序以在 Visual Studio 中进行调试之前,我并不清楚是否使用了任何命名连接。以下是在 Visual Studio 中调试应用程序的粗略指南(除了我使用基于 HTTP 的网站,而不是文件系统):
http://www.codeproject.com/Articles/28792/Debugging-Classic-ASP-VBScript-in-Visual-Studio-20
创建所需的 DSN 后,数据库列中的默认值又引发了一些异常。这是由于可以在 my.ini 文件中更改的 MySQL 设置所致。
http://bugs.mysql.com/bug.php?id=14306
C:\Program 文件(x86)\MySQL\MySQL 服务器 5.5\my.ini
# Set the SQL mode to strict
# sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode=""