我正在尝试部署一个Azure云服务Web角色,这是一个简单的应用程序,用于测试通过odbc连接到Hive。为了做到这一点,我需要在启动应用程序之前在计算机上安装hive odbc驱动程序,这就是为什么我添加了一个启动任务,该任务调用powershell脚本来下载驱动程序,而不是像这样安装它:
startup.cmd
@echo off
powershell -command "Set-ExecutionPolicy Unrestricted" 2>> err.out
powershell .\dlHiveOdbcDriver.ps1 2>> err.out
hiveodbc.msi /passive
dlHiveOdbcDriver.ps1
(new-object system.net.webclient).downloadfile('https://download.microsoft.com/download/F/4/A/F4A2CA7D-5D14-4177-A7CE-B938EF3F3C24/HiveODBC32.msi', 'hiveodbc.msi')
我的serviceDefinition具有以下代码来声明启动任务
<WebRole name="SomeTest" vmsize="ExtraSmall">
<Startup>
<Task commandLine="startup.cmd" taskType="simple" executionContext="elevated" />
</Startup>
...
</WebRole>
但是,当我部署应用程序时,仍然出现以下错误
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
这暗示未安装驱动程序。我尝试重新启动应用程序,确保已应用所有先决条件(根文件夹中的脚本,始终复制,executionPolicy等),但无济于事。不幸的是,由于办公室问题,我目前无法远程访问机器。
任何帮助将不胜感激。
我差点忘了更新。事实证明,默认情况下,Azure在其Cloud Service Web角色中的VM上托管的IIS网站使用x64体系结构。最重要的是,他们还预先安装了Hive odbc驱动程序,但是他们使用的是x86驱动程序,而不是x64驱动程序。我也尝试安装x86驱动程序-因此该任务正在按应有的方式工作。我也向Azure提出了一个解决此问题的方法,以防任何人也遭受此问题困扰。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句