我希望有人可以帮我解决我的SSIS自动化错误。我创建了一个从webportal下载文件的包。在我的软件包的第二步中,我将.xls转换为.csv(这种转换有正当理由,因为下载的.xls文件无法通过软件包打开)。我使用下面的代码将我的文件转换为csv,并在我的本地机器上完美地工作。但是当我在服务器上部署它时。它抛出以下错误消息。我唯一能想到的是,当我在本地机器上运行它时,当它将文件转换为csv时,屏幕上会弹出一个消息框,说明"转换文件"然后"将文件保存为.csv"。 服务器机器有问题处理这些消息框?帮助将不胜感激。
#region Namespaces
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.IO;
using System.Reflection;
using Excel = Microsoft.Office.Interop.Excel;
using System.Net;
#endregion
public void Main()
{
// TODO: Add your code here
Excel.Application excelapp = new Excel.Application();
Excel.Workbook Datasource = (Excel.Workbook)excelapp.Workbooks.Add(1);
var DownloadPath = Dts.Variables["User::varDownloadPathNew"].Value.ToString();
var ConvertedPath = Dts.Variables["User::varConvertedFileName"].Value.ToString();
string FileName = DownloadPath;
var format = Excel.XlFileFormat.xlCSV;
Datasource = excelapp.Workbooks.Open(FileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
Datasource.SaveAs(ConvertedPath, format, Missing.Value, Missing.Value, false, false, Excel.XlSaveAsAccessMode.xlNoChange,
Excel.XlSaveConflictResolution.xlUserResolution, true,
Missing.Value, Missing.Value, Missing.Value);
//Clean
Datasource.Close(true);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(Datasource);
excelapp.Quit();
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(excelapp);
Dts.TaskResult = (int)ScriptResults.Success;
}
答案 0 :(得分:0)
管理最终解决问题。结束后在C盘上创建两个文件夹,然后重启服务器机器(注意,我先在服务器机器上安装了MS office)。
C:\的Windows \ system32 \设置\ systemprofile \桌面 C:\的Windows \ Syswow64资料\配置\ systemprofile \桌面
这解决了我的问题。
谢谢