開発中のasp.netMVC3Webアプリケーションで問題が発生しています。ユーザーがExcelファイルをアップロードしてファイルシステムにダンプできるアップロードページが必要です。私はこれをうまく機能させました。次の部分は私が問題を抱えている部分です。Excelファイルをアップロードした後、Excelファイルをインポートするためにすでに作成したSSISパッケージをプログラムで開始する必要があります。
これが私がこれまでにコードで持っているものです:
//
// 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 \ VisualStudio2008 \ Projects \ Integration Services Project1 \ Integration Services Project1 \ bin\Package.dtsx」を開くことができませんでした。これは、パッケージをロードしていて、ファイルを開いたり、XMLドキュメントに正しくロードしたりできない場合に発生します。これは、LoadPackageの呼び出し時に誤ったファイル名が指定されたか、XMLファイルが指定されていて形式が正しくないことが原因である可能性があります。
ファイルパスが正しいことを確認したので、なぜこれが表示されるのかわかりません。正確に正しいです。私はこの問題を解決するためにいくつかの助けが必要です私はあなたたちが与えることができるどんな助けでも大いに感謝します。