none
Subir Proyecto Asp.net a IIS RRS feed

  • Pregunta

  • Buen día, he tratado de subir mi proyecto al servidor local de IIS, se sube y funciona pero el único detalles que estoy utilizando la librería de itextsharp y cuando se subió mi poryecto a IIS no me genera el PDF pero si ejecuto mi proyecto desde visual si lo hace. Espero me puedan ayudar. 
    Nota: En el servidor de IIS están las dll de itextsharp pero aun así no genera el PDF
    jueves, 28 de enero de 2016 0:36

Respuestas

  • Te recomiendo que en tu parte catch no solo cierres conex (que por cierto NO se de donde sale ni que tipo objeto es), si no que hagas un log a fichero por ejemplo para ver si te genera alguna excepción tu proceso. Ahora mismo la estas enmascarando., por eso no sabes qué te esta pasando

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    jueves, 28 de enero de 2016 5:55
    Moderador
  • hola

    validaste bajo que carpeta se esta grabando el archivo

    string path = Path.Combine(Server.MapPath("~/") ,  "Archivos\\" + narc + " .pdf");

    inyenta usando el ~/

    ---

    por otro lado veo que grabas el pdf en una carpeta dels ervidor pero tambien la envias al cliente para verlo en el browser

    esta parte de enviarla al cliente se esta generando ? o sea puede ver el pdf en el browser

    porque si la idea es ver el pdf en el browser no tienes porque generarlo en un archivo, podrias hacer que se genere en memoria y enviarlo al cliente sin tener ningun archivo fisico

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 28 de enero de 2016 11:41

Todas las respuestas

  • hola

    el pdf que generas lo grabas en algun carpeta dentro del sitio ?

    defines algun bloque try..catch en el codigo que genera el pdf ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 28 de enero de 2016 1:01
  •  

    Este es mi codigo que genera el PDF.

    try
    
    {
    
    //System.Web.Exception opcional para manejar datos de respuesta HTTP a un cliente
                        Response.Clear();
                        Response.ContentType = "application / pdf";
                        Response.Cache.SetCacheability(HttpCacheability.NoCache);
    
                        //Para crear una instancia de documento de iTextSharp con el tamaño de página y tamaño de margenes correspondientes
                        Document doc = new Document(PageSize.A4, 0, 0, 10, 10);
                        //La ruta en donde será guardado el pdf dentro del servidor
                        string narc = Nombre.Value;
                        string path = this.Server.MapPath(".") + "\\Archivos\\" + narc + " .pdf";
    
                        //Utilizamos System.IO para crear o sobreescribir el archivo si existe
                        FileStream file = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
                        BaseFont bfTimes = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, false);
                        Font times = new Font(bfTimes, 32);
                        BaseFont bfTimes2 = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, false);
                        Font times2 = new Font(bfTimes2, 30);
    
    
                        //iTextSharp para escribir en el documento PDF
                        PdfWriter.GetInstance(doc, file);
                        doc.Open();
                        //Agregamos  el texto que esta dentro de la etiqueta
                        //Se pueden agregar varios solamente añadiendo varias sentencias doc.Add(…)    
    
                        double mesestotales = ((Convert.ToDouble(MP.Text)) + (Convert.ToDouble(MPEN.Text)));
                        string MT = mesestotales.ToString();
                        PdfPTable table = new PdfPTable(5);
                        PdfPCell cel = new PdfPCell(new Phrase("C.A.P.A.", times));
                        PdfPCell cell = new PdfPCell(new Phrase(" SANTA MARIA ATLIHUETZIA, TLAXCALA", times));
                        PdfPCell cell2 = new PdfPCell(new Paragraph("COMITE DE AGUA POTABLE", times));
                        PdfPCell cell3 = new PdfPCell(new Paragraph("No."+id_pago.Text,times));
                        PdfPCell fechaText = new PdfPCell(new Paragraph("FECHA:            "+fecha_pago.Text,times));
                        PdfPCell nombreText = new PdfPCell(new Paragraph("NOMBRE:   " + DropDownList1.Text, times));
                        PdfPCell direccionText = new PdfPCell(new Paragraph("DIRECCION:   "+direccion.Text, times));
                        PdfPCell mesesText = new PdfPCell(new Paragraph("MESES:      " + MT, times));
                        PdfPCell cuotaText = new PdfPCell(new Paragraph("CUOTA: $" + CUOTA.Text, times));
                        PdfPCell pagoContratoText = new PdfPCell(new Paragraph("PAGO DE CONTRATO: $" + Pago_contrato.Text, times));
                        PdfPCell SubtotalText = new PdfPCell(new Paragraph("Subtotal:   $ " + SUBTOTAL.Text, times));
                        PdfPCell Esp1 = new PdfPCell(new Paragraph(""));
                        PdfPCell RecargosText = new PdfPCell(new Paragraph("Recargos:   $" + RECARGOS.Text, times));
                        PdfPCell DescuentoText = new PdfPCell(new Paragraph("Descuento:  $" + DESCTOTAL.Text, times));
                        PdfPCell Esp2 = new PdfPCell(new Paragraph("*****************************************************************************************************************************"));
    
                        PdfPCell TotalText = new PdfPCell(new Paragraph("TOTAL:      $" + TOTAL.Text, times));
    
                        PdfPCell Nota = new PdfPCell(new Paragraph("NOTA: Este recibo debera pagarse dentro de los primeros diez días de cada mes, en caso contrario causará recargos según acuerdo de asamblea ", times2));
    
    
                        SubtotalText.BorderWidth = 0;
                        SubtotalText.HorizontalAlignment = 2;
                        Esp1.BorderWidth = 0;
                        Esp2.BorderWidth = 0;
                        Nota.BorderWidth = 0;
                        RecargosText.BorderWidth = 0;
                        RecargosText.HorizontalAlignment = 2;
                        DescuentoText.BorderWidth = 0;
                        DescuentoText.HorizontalAlignment = 2;
                        TotalText.BorderWidth = 0;
                        TotalText.HorizontalAlignment = 2;
    
                        PdfPTable nested = new PdfPTable(1);
                        nested.SpacingBefore = 20;
                        nested.SpacingAfter = 20;
                        table.WidthPercentage = 100;
                        table.SpacingBefore = 20;
                        table.SpacingAfter = 20;
                        nested.WidthPercentage = 100;
                        PdfPTable tab2 = new PdfPTable(1);
                        tab2.WidthPercentage = 100;
                        tab2.SpacingBefore = 20;
                        tab2.SpacingAfter = 20;
    
                        cel.Colspan = 5;
                        cel.HorizontalAlignment = 1;
                        cell.Colspan = 5;
                        cell.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right
                        cell2.Colspan = 3;
                        cell2.HorizontalAlignment = 1;
                        cell3.Colspan = 2;
                        cell3.HorizontalAlignment = 1;
    
                        table.AddCell(cel);
                        table.AddCell(cell);
                        table.AddCell(cell2);
                        table.AddCell(cell3);
    
    
                        fechaText.Colspan = 5;
                        fechaText.HorizontalAlignment = 0;
                        nombreText.Colspan = 5;
                        nombreText.HorizontalAlignment = 0;//0=Left, 1=Centre, 2=Right
                        direccionText.Colspan = 5;
                        direccionText.HorizontalAlignment = 0;
                        mesesText.Colspan = 5;
                        mesesText.HorizontalAlignment = 0;
                        cuotaText.Colspan = 5;
                        cuotaText.HorizontalAlignment = 0;
                        pagoContratoText.Colspan = 5;
                        pagoContratoText.HorizontalAlignment = 0;
    
                        table.AddCell(fechaText);
                       table.AddCell(nombreText);
                       table.AddCell(direccionText);
                       table.AddCell(mesesText);
                       table.AddCell(cuotaText);
                        table.AddCell(pagoContratoText);
                        table.AddCell(Esp1);
                        nested.AddCell(SubtotalText);
                        nested.AddCell(Esp1);
                        nested.AddCell(RecargosText);
                        nested.AddCell(Esp1);
                        nested.AddCell(DescuentoText);
                        nested.AddCell(Esp2);
                        nested.AddCell(TotalText);
                        nested.AddCell(Esp2);
                        tab2.AddCell(nested);
                        tab2.AddCell(Esp2);
                        tab2.AddCell(Nota);
    
    
    
    
    
    
                        doc.Add(table);
                        doc.Add(tab2);
    
                        doc.Close();
    
    
              // Process.Start(path);
                       Response.ContentType = "aplication/pdf";
                       Response.AddHeader("Content-Disposition", "attachement;filename=" + narc + ".pdf");
                       Response.TransmitFile(path);
    
    
                    }
                    catch (Exception Ex)
                    {
    
                        conex.Close();
                    }
    
                    Server.Transfer("Default.aspx");
    
                }


                                                          
    jueves, 28 de enero de 2016 1:35
  • Te recomiendo que en tu parte catch no solo cierres conex (que por cierto NO se de donde sale ni que tipo objeto es), si no que hagas un log a fichero por ejemplo para ver si te genera alguna excepción tu proceso. Ahora mismo la estas enmascarando., por eso no sabes qué te esta pasando

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    jueves, 28 de enero de 2016 5:55
    Moderador
  • ¿Has comprobado que tienes permisos suficientes para acceder al directorio donde lo estás generando en el servidor?. Si se trata de un proyecto web el usuario “ASP.NET” del servidor debe tener permiso de escritura sobre el directorio:

    this.Server.MapPath(".") + "\\Archivos\\"

    ¿Si accedes a dicha carpeta se encuentra el archivo generado?

    Un saludo.

    jueves, 28 de enero de 2016 10:05
  • hola

    validaste bajo que carpeta se esta grabando el archivo

    string path = Path.Combine(Server.MapPath("~/") ,  "Archivos\\" + narc + " .pdf");

    inyenta usando el ~/

    ---

    por otro lado veo que grabas el pdf en una carpeta dels ervidor pero tambien la envias al cliente para verlo en el browser

    esta parte de enviarla al cliente se esta generando ? o sea puede ver el pdf en el browser

    porque si la idea es ver el pdf en el browser no tienes porque generarlo en un archivo, podrias hacer que se genere en memoria y enviarlo al cliente sin tener ningun archivo fisico

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 28 de enero de 2016 11:41