在Windows Server 2008上使用ABCpdf.NET将Office文件转换为PDF的异常

时间:2009-10-05 17:58:30

标签: windows-server-2008 office-2007 xps abcpdf

有没有人从ABCpdf中删除这个例外?我们在Server 2008上运行,只有转换Office文件(Word和Excel)的问题。这一切在Server 2003上运行良好。因为我们只遇到Office文件的问题,我想知道它是否与Server 2008上的XPS支持有关?调用此函数的代码作为Windows服务运行。

Private Overloads Function ConvertMicrosoftOfficeDocToPdf(ByVal inputFile As Byte(), ByVal fileExt As String) As Byte()
    Dim abcDoc As WebSupergoo.ABCpdf7.Doc = Nothing

    Try
        abcDoc = New WebSupergoo.ABCpdf7.Doc()

        Dim xro As New WebSupergoo.ABCpdf7.XReadOptions()
        xro.FileExtension = fileExt

        Try
            abcDoc.Read(inputFile, xro)
        Catch ex As Exception
            System.Diagnostics.Trace.Write(ex.ToString())
            Throw ex
        End Try

        Dim fileBytes As Byte() = abcDoc.GetData()
        Return fileBytes
    Finally
        If Not abcDoc Is Nothing Then
            abcDoc.Clear()
            abcDoc.Dispose()
        End If
    End Try
End Function
  

WebSupergoo.ABCpdf7.Internal.PDFException:   试图读或写受保护   记忆。这通常是一个迹象   其他内存已损坏。 --->   System.AccessViolationException:   试图读或写受保护   记忆。这通常是一个迹象   其他内存已损坏。          在WebSupergoo.ABCpdf7.Internal.NDoc._InvokeMethod(IntPtr   inDoc,Int32 inMethod,Int32 inIndex,   Int32 inFlags,String inParams,   字符串和放大器; outErr)          在WebSupergoo.ABCpdf7.Internal.NDoc.InvokeMethod(IntPtr   inDoc,Int32 inMethod,Int32 inIndex,   Int32 inFlags,String inParams,   字符串和放大器; outErr)          在WebSupergoo.ABCpdf7.Doc.PrintToXps(String   inputFile,String outputFile,Int32   timeout,String printerName)          at WebSupergoo.ABCpdf7.Operations.XpsImportOperation.ImportAny(Doc   doc,String path,Int32 timeout)          在WebSupergoo.ABCpdf7.XReadOptions.ImportXpsAny(Doc   doc,String path,Boolean clear)          在WebSupergoo.ABCpdf7.XReadOptions.Read(Doc   doc,Byte []数据,ReadModuleType   模块)          在WebSupergoo.ABCpdf7.XReadOptions.Read(Doc   doc,Byte []数据)

2 个答案:

答案 0 :(得分:3)

在此处添加了名为“桌面”的文件夹:

C:\的Windows \ Syswow64资料\配置\ systemprofile \

http://social.msdn.microsoft.com/Forums/en/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91

答案 1 :(得分:0)

实际问题是您尝试编写文件的文件夹,给IIS_IUSR写入权限。然后它应该工作。