2016-06-20 1 views
0

Asp.net MVC 5가있는 웹 응용 프로그램이 있으며 pdf 용 Rotativa를 사용했습니다.Azure Server에 게시 할 때 Rotativa pdf가 작동하지 않습니다.

Rotativa는 Azure 서버에 게시 할 때 작동하지 않지만 내 로컬 컴퓨터에서 작동합니다. 벨로우 오류가 발생했습니다

500 - 요구가 만료되었습니다.

웹 서버가 지정된 시간 내에 응답하지 못했습니다.

벨로우는 제 코드입니다. 여기

public ActionResult DoPdf(int id) 
{ 
return new ActionAsPdf("PrintMyPdf", new { id = id }) { FileName = string.Format("Demo_{0}.pdf", id) }; 
} 

때문에 내가 내 HTML 뷰의 PDF를 할 수있는 방법을 https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#unsupported-frameworks

제안하십시오 웹 응용 프로그램 샌드 박스 byAzure의 조건에 사용할 수없는 것으로 밝혀졌다 프레임 워크와 시나리오의 목록입니다 MVC 5?

답변

0

EvoPdf에서 HTML to PDF for Azure Websites을 사용하는 것이 좋습니다. 사용자는 HTML을 PDF Azure 클라우드 서비스로 완벽하게 제어 할 수 있습니다. 서비스 소유자는 사용자가 변환을 위해 보내는 데이터의 보안과 같은 것에 대해 걱정할 필요가 없기 때문입니다. 웹 사이트에서 사용중인 코드는 다음과 같습니다.

protected void convertToPdfButton_Click(object sender, EventArgs e) 
{ 
    // Get the server IP and port 
    String serverIP = textBoxServerIP.Text; 
    uint serverPort = uint.Parse(textBoxServerPort.Text); 

    // Create a HTML to PDF converter object with default settings 
    HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter(serverIP, serverPort); 

    // Set optional service password 
    if (textBoxServicePassword.Text.Length > 0) 
     htmlToPdfConverter.ServicePassword = textBoxServicePassword.Text; 

    // Set HTML Viewer width in pixels which is the equivalent in converter of the browser window width 
    htmlToPdfConverter.HtmlViewerWidth = int.Parse(htmlViewerWidthTextBox.Text); 

    // Set HTML viewer height in pixels to convert the top part of a HTML page 
    // Leave it not set to convert the entire HTML 
    if (htmlViewerHeightTextBox.Text.Length > 0) 
     htmlToPdfConverter.HtmlViewerHeight = int.Parse(htmlViewerHeightTextBox.Text); 

    // Set PDF page size which can be a predefined size like A4 or a custom size in points 
    // Leave it not set to have a default A4 PDF page 
    htmlToPdfConverter.PdfDocumentOptions.PdfPageSize = SelectedPdfPageSize(); 

    // Set PDF page orientation to Portrait or Landscape 
    // Leave it not set to have a default Portrait orientation for PDF page 
    htmlToPdfConverter.PdfDocumentOptions.PdfPageOrientation = SelectedPdfPageOrientation(); 

    // Set the maximum time in seconds to wait for HTML page to be loaded 
    // Leave it not set for a default 60 seconds maximum wait time 
    htmlToPdfConverter.NavigationTimeout = int.Parse(navigationTimeoutTextBox.Text); 

    // Set an adddional delay in seconds to wait for JavaScript or AJAX calls after page load completed 
    // Set this property to 0 if you don't need to wait for such asynchcronous operations to finish 
    if (conversionDelayTextBox.Text.Length > 0) 
     htmlToPdfConverter.ConversionDelay = int.Parse(conversionDelayTextBox.Text); 

    // The buffer to receive the generated PDF document 
    byte[] outPdfBuffer = null; 

    if (convertUrlRadioButton.Checked) 
    { 
     string url = urlTextBox.Text; 

     // Convert the HTML page given by an URL to a PDF document in a memory buffer 
     outPdfBuffer = htmlToPdfConverter.ConvertUrl(url); 
    } 
    else 
    { 
     string htmlString = htmlStringTextBox.Text; 
     string baseUrl = baseUrlTextBox.Text; 

     // Convert a HTML string with a base URL to a PDF document in a memory buffer 
     outPdfBuffer = htmlToPdfConverter.ConvertHtml(htmlString, baseUrl); 
    } 

    // Send the PDF as response to browser 

    // Set response content type 
    Response.AddHeader("Content-Type", "application/pdf"); 

    // Instruct the browser to open the PDF file as an attachment or inline 
    Response.AddHeader("Content-Disposition", String.Format("{0}; filename=Getting_Started.pdf; size={1}", 
     openInlineCheckBox.Checked ? "inline" : "attachment", outPdfBuffer.Length.ToString())); 

    // Write the PDF document buffer to HTTP response 
    Response.BinaryWrite(outPdfBuffer); 

    // End the HTTP response and stop the current page processing 
    Response.End(); 
} 
관련 문제