在Web服务器上部署执行SSIS包的Web应用程序。






4.29/5 (8投票s)
本文介绍了.Net和SSIS集成部署的先决条件。
引言
最近,我一直在处理一个模块,该模块具有需要从ASP.net网页调用的SSIS包。我们有两个生产服务器,一个是Web服务器(.Net Framework 2.0- IIS 6.0),另一个是数据库服务器(SQL Server)。我们面临的挑战是如何从.net环境将调用SSIS-Dtsx包的Web应用程序部署为文件系统。本文介绍了在部署到生产环境之前需要满足的先决条件。
1.部署清单和重要说明
1.在Web服务器中安装集成服务
确保部署Web应用程序的Web服务器已安装集成服务。它不需要安装数据库。这将有助于在全局缓存程序集中包含引用Microsoft.SqServer.ManagedDTS。
using Microsoft.SqlServer.Dts.Runtime;
protected void btnExecute_Click(object sender, EventArgs e)
{
Application app = new Application();
Package package = null;
try
{
string fileName =
Server.MapPath(System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName.ToString()));
FileUpload1.PostedFile.SaveAs(fileName);
//Load DTSX
package =
app.LoadPackage(@"D:\SSIS_ASP_NET\SSIS_ASP_NET_DEMO\SSIS_ASP_NET_DEMO\Package1.dtsx", null);
//Global Package Variable
Variables vars = package.Variables;
vars["Business_ID"].Value = txtBusinessID.Text;
vars["Business_Name"].Value = txtBusinessName.Text;
//Specify Excel Connection From DTSX Connection Manager
package.Connections["SourceConnectionExcel"].ConnectionString =
"provider=Microsoft.Jet.OLEDB.4.0;data source=" + fileName + ";Extended Properties=Excel 8.0; ";
//Execute DTSX.
Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = package.Execute();
}
catch (Exception ex)
{
throw ex;
}
finally
{
package.Dispose();
package = null;
}
}
2.如果从SQL Server 2000迁移到SQL Server 2005
数据库服务器同时安装了SQL Server 2000和SQL Server 2005,请确保SQL Server 2000已停止。检查Web应用程序中的连接字符串。如果遇到此错误,请参见下文
"SSIS 错误代码 DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。可以获得OLE DB记录。源:“Microsoft OLE DB Provider for SQL Server” Hresult:0x80004005 描述:“[DBNETLIB][ConnectionOpen (Invalid Instance()).]无效连接。”。2008年8月12日 17:31:38 SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“DestinationConnectionOLEDB”的AcquireConnection方法调用失败,错误代码为0xC0202009。在此之前,可能发布了更多关于AcquireConnection方法调用失败原因的信息。2008年8月12日 17:31:38 组件“Destination - XXXX”(41)验证失败,并返回错误代码0xC020801C。2008年8月12日 17:31:38 一个或多个组件验证失败。2008年8月12日 17:31:38 任务验证期间发生错误。2008年8月12日 17:31:38 "
此问题的解决方法是在DATA SOURCE属性中包含实例名称和端口。
< data source=10.10.10.10/Yukon,1533;initial catalog=NorthWind;UID=xxx;PWD=xxx; Connect Timeout=300>
3.具有企业库的Web应用程序
在连接字符串中添加pooling = false以禁用数据库连接池机制
< data source=10.10.10.10/Yukon,1533;initial catalog=NorthWind;UID=xxx;PWD=xxx; Connect Timeout=300;pooling=false>
结论
欢迎提出任何更正和输入。