搜尋本站文章

2009-10-08

64 位元版本的 SSIS 2008,無法對「指令碼工作(Script Task)」執行「偵錯(Debug)」功能;設定 Run64BitRuntime 屬性


使用 64位元版本的 SSIS 2008,的確是有其在記憶體等使用上的優勢。
但卻有數項問題,例如:資料庫連線驅動程式(Driver)支援的問題,有許多異質平台的資料庫系統仍只有 32 位元驅動程式。

而在使用「指令碼工作(Script Task)」上也會碰到以下的問題:
64 位元版本的 SSIS 2008,無法對「指令碼工作(Script Task)」執行「偵錯(Debug)」功能。


會發生這樣的問題,是因為負責執行偵錯功能的工具:Visual Studio Tools for Applications (VSTA),目前僅有 32 位元版本。

Visual Studio 開發工具的團隊要加油,作業系統都已經是 64 位元版本,但是開發工具仍停留在 32 位元版本。

請參考下圖所示:




可能的解決方案:
設定專案的屬性:Run64BitRuntime 為 False。
請參考下圖所示:







在 64 位元電腦上執行 Integration Services 封裝


有時候,您可能想要在 64 位元的電腦上以 32 位元模式執行封裝。
以 32 位元模式執行封裝的可能原因如下:

•執行 SQL Server 2000 DTS 封裝。

•使用無法用於 64 位元版本的 Managed .NET Framework Data Provider 或原生 OLE DB 提供者。

•使用指令碼工作或指令碼元件,參考不提供或未安裝 64 位元版本的其他組件或 COM 元件。


在 SSIS 設計師中的設定 32 位元或 64 位元封裝執行:
在 Integration Services 封裝的 [專案屬性] 中,您可以透過在 [偵錯] 頁面中設定 Run64BitRuntime 屬性的值,以選取 32 位元或 64 位元的執行模式。

依預設,此屬性的值為 True。
如果未安裝 64 位元版本的 Integration Services 執行階段,則會忽略此設定。

附註:
Run64BitRuntime 專案屬性只會在設計階段套用。


更新日期:2011/05/10

使用環境:
1. Windows Server 2008 R2 x64
2. SQL Server 2008 R2 x64
3. Office 2010 x64


在「執行結果」視窗,顯示的錯誤訊息如下:
警告: 在以 Integration Services 執行階段的 64 位元版本執行時,無法偵錯指令碼工作。

Warning: Cannot debug script tasks when running under the 64 bit version of the Integration Services runtime.
--P01

--P02



設定「Run64BitRuntime」屬性為:False。

--P03


--P04


經過上述的調整,應該就可以執行指令碼的偵錯作業:

--P05




參考資料:
Integration Services 的 64 位元考量
http://msdn.microsoft.com/zh-tw/library/ms141766.aspx


並感謝熊爺的協助。