2015-05-04 13 views
5

Sto usando NReco .PdfGenerator per i miei documenti PDF (quel componente è basato sullo strumento WkHtmlToPdf), il mio codice mi consente di creare un pdf chiamando una funzione con i parametri controllore, l'azione, il modello:NReco.PdfGenerator La pipa è stata terminata errore sul server

public static byte[] GeneratePdfDocument(System.Web.Mvc.Controller controller, string viewName, object model) 
{ 
    string result; 
    controller.ViewData.Model = model; 
    using (StringWriter sw = new StringWriter()) 
    { 
     ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName); 
     ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw); 
     viewResult.View.Render(viewContext, sw); 

     result = sw.ToString(); 
    } 

    return (new NReco.PdfGenerator.HtmlToPdfConverter()).GeneratePdf(result); 
} 

Con questo codice è possibile creare un PDF facilmente da mio punto di vista e che sta funzionando molto sul mio ambiente di sviluppo, ma sul server sto ottenendo questo errore:

The pipe has been ended. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.IOException: The pipe has been ended. 


[IOException: The pipe has been ended.] 
System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +11185413 
System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count) +10770013 
System.IO.FileStream.Write(Byte[] array, Int32 offset, Int32 count) +139 
NReco.PdfGenerator.HtmlToPdfConverter.GeneratePdfInternal(String htmlFilePath, Byte[] inputBytes, String coverHtml, String outputPdfFilePath, Stream outputStream) +2166 

[Exception: Cannot generate PDF: The pipe has been ended.] 
NReco.PdfGenerator.HtmlToPdfConverter.GeneratePdfInternal(String htmlFilePath, Byte[] inputBytes, String coverHtml, String outputPdfFilePath, Stream outputStream) +2734 
NReco.PdfGenerator.HtmlToPdfConverter.GeneratePdf(String htmlContent, String coverHtml, Stream output) +51 
NReco.PdfGenerator.HtmlToPdfConverter.GeneratePdf(String htmlContent, String coverHtml) +42 

Penso che sia forse un problema con le autorizzazioni o così mi configurazione sul mio IIS, qualche idea?

risposta

11

Probabilmente stai mancando Pacchetti ridistribuibili in Visual C++ per VS2013 (x86). Anche se sul tuo server è in esecuzione Windows a 64 bit, devi installare i pacchetti x86 C++.