2015-05-04 4 views
5

numaralı sunucuda hata yapmıştır NReco .PdfGenerator PDF belgelerim için (bu bileşen WkHtmlToPdf aracına dayanmaktadır), kodum parametrelerle bir işlevi çağırıp pdf oluşturmama izin veriyor kontrolör, aksiyon, model:NReco.PdfGenerator Bu sunucu

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); 
} 
benim görünümlerinden kolayca PDF oluşturabilirsiniz Bu kod ile

ve benim geliştirme ortamı üzerinde harika çalışıyor ama bir sunucuda bu hatayı alıyorum:

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 

Belki de izinlerle ilgili bir sorun olduğunu düşünüyorum benim IIS'imde yapılandırma, herhangi bir fikir?

cevap

11

Büyük olasılıkla VS2013 (x86) için Visual C++ Yeniden Dağıtılabilir Paketleri eksik. Sunucunuz 64bit Windows çalıştırıyor olsa bile, x86 C++ Paketlerini yüklemeniz gerekir.