0

我試圖部署天藍色雲服務Web角色,這是一個簡單的應用程序,用於測試通過odbc連接到Hive。爲此,我需要在啓動應用程序之前在機器上安裝配置單元odbc驅動程序,這就是爲什麼我添加了一個啓動任務,它調用powershell腳本來下載驅動程序,而不是像這樣安裝它:未啓用Azure雲服務啓動任務

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 

其影射未安裝驅動程序。 我試過重新啓動應用程序,確保所有pre-requisites (scripts in root folder, copy always, executionPolicy etc')已被應用,但無濟於事。 不幸的是,我不能遠程進入機器當前,由於辦公室問題...

任何幫助將不勝感激。

回答

0

我差點忘了更新它。 事實證明,Azure默認使用x64體系結構爲其在其Cloud Service Web角色中的虛擬機上承載的IIS網站使用。最重要的是,他們還預先安裝了一個Hive odbc驅動程序,但是他們使用x86驅動程序而不是x64驅動程序。我正在嘗試安裝x86驅動程序 - 所以任務正常運行。 I have raised an issue with Azure來解決這個問題,以防萬一誰也遭遇這個問題。

1

真正有助於遠程訪問,以便排除故障。我建議你從一臺可以實際測試的PC上嘗試它。

但繼承人我的做法。在ServiceDefinition.csdef中我有以下幾點:

<Task commandLine=".\startuptasks\bootstrap.cmd" executionContext="elevated" taskType="simple"> 
    </Task> 

我用這個bootstrap.cmd腳本安裝第三方組件:一個安裝*的.ps1文件

ECHO The current version is %MyVersionNumber% >> ".\StartupLog.txt" 2>&1 

cd startuptasks 

PowerShell -Command "Set-Executionpolicy Unrestricted" >> ".\excutionploicylog.txt" 2>&1 
PowerShell .\installCCP.ps1 >> ".\CCPStartupLog.txt" 2>&1 
PowerShell .\installOTHERSTUFF.ps1 >> ".\GSStartupLog.txt" 2>&1 
EXIT /B 0 

內容是:

$source = "http://YOUR_ACCOUNT.blob.core.windows.net/installer/vcredist_x64.exe" 
$destination = "$($tempDir.Value)\vredistx64.exe" 
Invoke-WebRequest $source -OutFile $destination -Method Get 
$p1 = Start-Process $destination -ArgumentList " /quiet /norestart" -wait -NoNewWindow -PassThru 

確保使用「Copy if newer」將所有文件(.cmd和.ps1)複製到輸出目錄。

確保您可以使用Start-Process在本地進行安裝。無聲安裝需要支持。

請讓我知道這是否有幫助。