65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.29/5 (8投票s)

2008年9月5日

CPOL

2分钟阅读

viewsIcon

73804

本文介绍了.Net和SSIS集成部署的先决条件。

Sample Image - maximum width is 600 pixels

引言

最近,我一直在处理一个模块,该模块具有需要从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;
        }
    }

        

Sample Image - maximum width is 600 pixels

Sample Image - maximum width is 600 pixels

Sample Image - maximum width is 600 pixels

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>

结论

欢迎提出任何更正和输入。

© . All rights reserved.