运行环境: ASP.NET应用程序运行的WEB服务器为Windows2003 server,数据库也安装在同一台机器上,数据库为SQLSERVER2005,DTS包为用SQLSERVER2005开发的Integration Services包。
在ASP.NET中运行DTS包的代码如下:
string strPkg = @"c:/dataproc.dtsx";
Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
Microsoft.SqlServer.Dts.Runtime.Package pkg = app.LoadPackage(strPkg, null);
DTSExecResult result = pkg.Execute();
string strResult = result.ToString();
lblImportExcel.Text = "执行结果:" + strResult;
pkg.Dispose();
pkg = null;
app = null;
经运行调试,总是执行失败,最后发现是权限问题。执行失败是由于asp.net的运行用户不具备SQLSERVER数据库的操作权限,解决办法如下:
1、给NT AUTHORITY/NETWORK SERVICE在SQLSERVER中赋予相应数据库的INSERT、UPDATE、DELETE权限
2、如果涉及到从EXCEL取数据,最好给EXCEL赋予EVERYONE读权限
经过以上权限设置后,系统运行成功。