我在程序中写了个调用DTS包的函数,此函数在本机测试完成后,在本机用起来非常的好用,它调用执行的DTS包也是服务器上的,可是当我把此函数放到服务器上用时,就会报错,在IE里执行一会儿就会有点类似于超时一样,浏览器就显示----无法访问IE,就是平常上不了网时出现的那个界面,此程序如下,请哪们高手帮忙看看
/// <summary>
/// 执行DTS包,请注意各参数的详细解释以避免不必要的错误
/// </summary>
/// <param name="SqlServerName">Sql Server服务器的名称,如210.76.152.18</param>
/// <param name="SqlUserName">Sql Server登录用户名,必须是有权执行DTS包的帐户</param>
/// <param name="SqlPassWord">Sql Server登录密码</param>
/// <param name="DTSPassword">DTS包的密码,若无密码,请输入null表示无密码</param>
/// <param name="DTSPackageName">要调用的DTS包名称</param>
public void RunDTS(string SqlServerName,string SqlUserName,string SqlPassWord,string DTSPassword,string DTSPackageName)
  {
try
{
package=new Package2Class();
object pVarPersistStgOfHost = null;
package.LoadFromSQLServer(SqlServerName,SqlUserName,SqlPassWord,DTSSQLServerStorageFlags.DTSSQLStgFlag_Default,DTSPassword,null,null,DTSPackageName,ref pVarPersistStgOfHost);
package.Execute();
package.UnInitialize();
package = null;
}
catch(System.Runtime.InteropServices.COMException ex)
{
Console.WriteLine("COMException {0}\n{1}\n{2}", ex.ErrorCode, ex.Message, ex.StackTrace);
}
catch (System.Exception ex)
{
Console.WriteLine("Exception\n{0}\n{1}", ex.Message, ex.StackTrace);
}
}

解决方案 »

  1.   

    没试过这样调用,我一直都是通过存储过程用cmdshell 来执行dtsrun命令来实现的.
      

  2.   


    求asp.net(c#)调用dts包方法
      

  3.   

    protected void Page_Load(object sender, EventArgs e)
        {
            DTS.Package2Class package = new DTS.Package2Class(); //在使用前请添加引用dtspkg.dll文件;
            Object MIA=System.Reflection.Missing.Value;
            package.LoadFromSQLServer("zg","ZG", "123456", DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, "", "","", "Jgdm_DTS",ref MIA);
            package.Execute();
            //package.UnInitialize();
            //package = null;
                }以上控制程序最新调试发现:
    在VS.NET2005 环境里点击“执行调试(F5)”能正常使用(运行)Jgdm_DTS包。
    通过正常http://192.168.0.1/DTS.aspx运行,程序正常运行没出错提示,可Jgdm_DTS包工作没执行。