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(String FileName) +0

...

この問題が何であるか知っている人はいますか?私はそれについての詳細を見つけることができません。

4

1 に答える 1

1

これは単に、別のアプリケーションがあなたのファイルを開いているため、そのファイルがロックされていることを意味します。プログラムを実行しているときに、Visio でドキュメントを開いていますか?

ファイルの所有権について SysInternals Handle ツールを実行することで、どのプロセスがファイルを保持しているかを確認できます: http://technet.microsoft.com/en-us/sysinternals/bb896655

于 2012-10-10T13:03:21.383 に答える