我已经创建了一个(Web应用程序)Web调度器来在global.asax文件中每5分钟调用一次方法。它正在成功触发。文件正在被另一个进程使用C#visual studio
在该方法中,我使用interop dll创建excel,并将其另存为操作。 首先,我检查文件夹中是否存在文件,如果存在,我将删除它并执行“另存为”操作。它第一次工作正常。对于存在文件的第二次调用,我无法删除它。它说文件正在被另一个进程使用。
一旦调试器停止并再次运行,我可以删除文件,也只能在第一次运行。
我觉得visual studio(Asp.net开发服务器)正在锁定文件。一旦开发服务器停止,我可以删除它。
请找到下面的代码: -
string fullFileName = Path.Combine(Path.GetTempPath(), testf);
FileInfo TheFileInfo = new FileInfo(filePath);
if (TheFileInfo.Exists)
{
File.Delete(fullFileName);
}
xlWorkBook.SaveAs(fullFileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue,misValue);
//xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
GC.Collect();
GC.WaitForPendingFinalizers();
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
xlApp.Application.Quit();
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(chartRange);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlWorkSheet);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlWorkBook);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlApp);
请帮助解决这个问题。
[请勿将Office Interop与ASP.NET一起使用](https://support.microsoft.com/zh-cn/kb/257757)。你会搞砸的,速度会很慢,而且通常会有更好的方式去实现它。 – mason