2

我正在开发的 asp.net MVC3 Web 应用程序遇到一些问题。我需要一个允许用户上传 excel 文件并将它们转储到文件系统的上传页面。我让这个工作正常。下一部分是我遇到问题的部分,上传 excel 文件后,我需要以编程方式启动我已经创建的 SSIS 包以导入 excel 文件。

这是我到目前为止的代码:

 //
    // POST: /Home/Update/
    [HttpPost]
    public ActionResult Update(HttpPostedFileBase file)
    {
        // Verify that the user selected a file
        if (file != null && file.ContentLength > 0)
        {

            var fileName = Path.GetFileName(file.FileName);

            // store the file inside ~/App_Data/uploads folder
            var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
            ViewBag.Message = "File Uploaded Successfully";
            file.SaveAs(path);

        }

        //Start the SSIS here

        try
        {
            Application app = new Application();

            Package package = null;
            package = app.LoadPackage( @"C:\Users\Chris\Documents\Visual Studio
            2008\Projects\Integration Services Project1\Integration Services Project1
            \bin\Package.dtsx", null);

            // Execute Package
            DTSExecResult results = package.Execute();

            if(results == DTSExecResult.Failure)
            {
                foreach(DtsError local_DtsError in package.Errors)
                {
                    ViewBag.Message("Package Execution results:{0}",  
                    local_DtsError.Description.ToString());
                }
            }
        }
        catch(DtsException ex)
        {
            //ViewBag.Message("{0} Exception caught.", ex);

        }


        // redirect back to the index action to show the form once again
        return RedirectToAction("Update");
    }

当我运行代码并上传一个 excel 文件时,我捕获了一个 DtsException,它说:

由于错误 0x80070003“系统找不到指定的路径”,无法打开包文件“C:\Users\Chris\Documents\Visual Studio 2008\Projects\Integration Services Project1\Integration Services Project1\bin\Package.dtsx”。当加载一个包并且文件无法打开或正确加载到 XML 文档中时,会发生这种情况。这可能是由于在调用 LoadPackage 时指定了不正确的文件名,或者指定了 XML 文件并且格式不正确。

我不明白为什么它给我这个,因为我检查了文件路径是正确的并且它是完全正确的。我需要一些帮助来解决这个问题,我将非常感谢你们提供的任何帮助。

4

1 回答 1

1

我应该考虑的权限。将文件放在运行 IIS 的帐户可以看到的位置。无论您打算在哪里部署它,都会很好。

于 2012-06-15T15:22:31.013 回答