为啥在编译环境下可以成功执行DTS包,在web环境下就不好用呢? Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
Microsoft.SqlServer.Dts.Runtime.Package pkg = app.LoadPackage(dtsxpath, null,true);
 pkg.Variables["TableName"].Value = "xx";
pkg.Variables["FilePath"].Value = fileExt1;
pkg.Execute();
就是这段代码。DTS包的作用是把EXCEL导入到数据库。在VS里执行的时候就成功导入,但换到web访问执行就不行,也不提示错误,就是excel里的数据导不进去。请大家帮帮忙,非常着急,谢谢!

解决方案 »

  1.   

    肯定有异常的,在所有可能的地方都加上异常捕获,WEB环境中最常见的问题就是权限问题,看看你用的SQLSERVER驱动ASP.NET用户是否有权限访问
      

  2.   

    二楼的大师傅,这段代码加了异常捕获的,但是没抛异常。
    “看看你用的SQLSERVER驱动ASP.NET用户是否有权限访问”这个应该怎么看呢?
    我已经把代码文件夹、ExceL表、DTS包的属性、安全加了EveryOne的所有权限,为啥还不行呢?
      

  3.   

    终于解决啦!
    因为DTS需要windows用户才能运行,如果IIS运行DTS包的话,得在web.config中加上这样一句
     <system.web>
    <identity impersonate="true" userName=" " password=" "  />
    </system.web>
    作用是web用户模拟windows用户。