我正在开发的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,其中说:
无法打开包文件“C:\ Users \ Chris \ Documents \ Visual Studio 2008 \ Projects \ Integration Services Project1 \ Integration Services Project1 \ bin \ Package.dtsx”由于错误0x80070003“系统找不到指定的路径“。加载包时会发生这种情况,并且无法将文件正确打开或加载到XML文档中。这可能是因为在调用LoadPackage时指定了错误的文件名,或者指定了XML文件并且格式不正确。
我不明白为什么它给我这个,因为文件路径是正确的我检查了它是完全正确的。我需要一些帮助解决这个问题我非常感谢你们给予的任何帮助。
答案 0 :(得分:1)
我应该考虑的权限。将文件放在运行IIS的帐户可以看到的位置。无论你计划部署它,都会很好。