0

当我尝试打开 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(字符串文件名)+0

...

有谁知道这个问题是什么?我找不到它的任何细节。

4

1 回答 1

1

它只是意味着另一个应用程序打开了您的文件,因此对其进行了锁定。运行程序时是否在 Visio 中打开了文档?

您可以通过运行用于文件所有权的 SysInternals Handle 工具来验证哪个进程保留了文件:http ://technet.microsoft.com/en-us/sysinternals/bb896655

于 2012-10-10T13:03:21.383 回答