当我尝试打开Visio文档并将其另存为pdf时出现此错误:
protected void ViewVisio(string url)
{
string pdfFile = Server.MapPath("/Files/test.pdf");
Microsoft.Office.Interop.Visio.Application visApp =
new Microsoft.Office.Interop.Visio.Application();
Microsoft.Office.Interop.Visio.Document visDoc =
visApp.Documents.Open(url.ToString()); // error occurs here
visDoc.ExportAsFixedFormat(
Microsoft.Office.Interop.Visio.VisFixedFormatTypes.visFixedFormatPDF,
pdfFile,
Microsoft.Office.Interop.Visio.VisDocExIntent.visDocExIntentScreen,
Microsoft.Office.Interop.Visio.VisPrintOutRange.visPrintAll, 1, -1,
false, true, true, true, false, System.Reflection.Missing.Value);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.TransmitFile(pdfFile);
Response.Flush();
Response.End();
}
这是我得到的错误:
System.Runtime.InteropServices.COMException:存在文件共享冲突。无法按要求访问该文件。
堆栈追踪:
堆栈追踪:
[COMException(0x86db097e):
存在文件共享冲突。无法按要求访问该文件。]
Microsoft.Office.Interop.Visio.DocumentsClass.Open(String FileName)+0
...
任何人都知道这是什么问题?我找不到任何细节。
答案 0 :(得分:1)
它只是意味着另一个应用程序打开了您的文件,因此锁定了它。在运行程序时,是否在Visio中打开了文档?
您可以通过运行用于文件所有权的SysInternals Handle工具来验证哪个进程对文件有保留:http://technet.microsoft.com/en-us/sysinternals/bb896655