C#中調用SSIS包的問題

來源:互聯網
上載者:User

我用c#調用SSIS包來更新cube資料時總是提示如下錯誤:
The package failed to load due to error 0xC0011008 "Error loading from XML. No further detailed error information can be specified for this problem because no Events object was passed where detailed error information can be stored.".
This occurs when CPackage::LoadFromXML fails.
環境vs2005 ,sql server2008
代碼如下:
public int ExecuteSSASDts()
{

//DtsRunTime.Application dtsApplication = new DtsRunTime.Application();
string filepath = "E:\\BACH\\QTY\\MM\\GSCS\\MainSource\\NewSource\\Web\\Dashboard\\Package.dtsx";
if (!System.IO.File.Exists(filepath))
{
return 2;
}
// Call SSIS package from SQL Server.
Microsoft.SqlServer.Dts.Runtime.Application application = new Microsoft.SqlServer.Dts.Runtime.Application();
Package package = application.LoadPackage(filepath, null); //運行到這句就包上面的錯誤
DTSExecResult result = package.Execute();
if (result.Equals(DTSExecResult.Success))
{
return 1;
}
else
{
return 0;
}
}

 

感謝幾位的幫忙,問題找到了,是因為dll應用的問題,
因為cube是在sql server2008中,所以我的包是用2008寫的,代碼又是2005的,那我在代碼引用DLL的時候引用的是Microsoft.SQLServer.DTSRuntimeWrap.dll 版本 9.0.240.0
代碼中的屬性與方法也是用的9.0.240.0 版本的,所以報錯
解決方案:
刪除web.config中9.0.240.0 版本的引用
重新引用10.0.0.0版本dll,如下:

代碼調整部分:
改動前:
public int ExecuteSSASDts()
{
Application app = new Application();
//DTS包所在位置
String strDtsFilePath = //包的位置
if (!System.IO.File.Exists(strDtsFilePath))
{
return 2;
}
//處理包
Package package = app.LoadPackage(strDtsFilePath, null);
DTSExecResult result = package.Execute();
if (result == DTSExecResult.Success)
{
return 1;
}
else
{
return 0;
}
}
修改後代碼:
public int ExecuteSSASDts()
{
string filepath = \\包的位置
if (!System.IO.File.Exists(filepath))
{
return 2;
}
// Call SSIS package from SQL Server.
Application application = new ApplicationClass();
IDTSPackage100 package = application.LoadPackage(filepath,false,null);
DTSExecResult result = package.Execute();
if (result.Equals(DTSExecResult.DTSER_SUCCESS))
{
return 1;
}
else
{
return 0;
}
}
這個問題困擾了我好久,現發出來與大家共用,希望能給一些想我一樣的菜鳥一些協助

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.