Link to home
Create AccountLog in
Avatar of NickMalloy
NickMalloyFlag for United States of America

asked on

problem creating pdf document using filestream and storing in DB

I have an application that is creates a PDF and then stores it in a database. On my local machine everything works great, but it fails with the following error when on the production server. The file stream  Line 66 is.

using (FileStream fs = File.Create(@"Eval" + DaRec + ".pdf"))

Open in new window


My application is a .net 4.5

The error Message

System.UnauthorizedAccessException: Access to the path 'C:\Windows\SysWOW64\inetsrv\Eval1200.pdf' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize) at System.IO.File.Create(String path) at GeneratePDF.Page_Load(Object sender, EventArgs e) in c:\Projects\appcreate\GeneratePDF.aspx.cs:line 66

Although this error talked about access denied. My server person indicates the error may be towards a machine key issue based on info from the server error logs. He sent me this address based on that error.  

http://blogs.msdn.com/b/tess/archive/2009/09/16/forms-authentication-fails-after-installing-iis-7-5.aspx

Here is my machine key currently in the web config

 <machineKey validationKey="1640985E8BF5DF25E040ED58ADB257AA8BE739C5B789E0FDE1BA08E11D8A1C13AFC0211C5CFC76306F4A860D32B1856B67A868D11C0B0280CB52B6159F5F08DF" decryptionKey="F52FC385309C58D876FCDBB5F0D8DEA581E645CA5513973B0241E6668C678355" validation="SHA1" decryption="AES" compatibilityMode="Framework45" />

Open in new window


Current code

using (MemoryStream myMemoryStream = new MemoryStream())
                {
                    try
                    {

                        Document myDocument = new Document(PageSize.A1, 10f, 10f, 10f, 0f);
                        PdfWriter myPDFWriter = PdfWriter.GetInstance(myDocument, myMemoryStream);
                        myDocument.Open();
                        WebClient wc = new WebClient();
                        string htmlText = wc.DownloadString("http://Prod40202/appcreate/GeneratePDF/CreatePDF.aspx?pid=" + DaRec);
                        Response.Write(htmlText.Replace("\r", "").Replace("\n", "").Replace("  ", ""));

                        List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(htmlText), null);

                        for (int k = 0; k < htmlarraylist.Count; k++)
                        {

                            myDocument.Add((IElement)htmlarraylist[k]);
                        }
                        myDocument.Close();
                        byte[] content = myMemoryStream.ToArray();
                        //    document.Close();
                        using (FileStream fs = File.Create(@"Eval" + DaRec + ".pdf"))
                        {

                            fs.Write(content, 0, (int)content.Length);
                            var p5 = ctx1.tblAttachments.SingleOrDefault(u => u.AttachmentID == RecID);
                            if (p5 != null)
                            {
                                p5.DocName = "PayEval" + DaRec + ".pdf";
                                p5.DocType = "pdf";
                                p5.DocByteSize = Convert.ToInt32(fs.Length);
                                p5.DocBinary = content;
                                p5.DateCreated = DateTime.Now;
                                ctx1.SaveChanges();
                                Response.Redirect("OpenAttachment.aspx?pid=" + RecID);

                            }

                        }
                    }
                    catch (Exception ex)
                    {
                        Response.Write(ex.ToString());
                    }
                }

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Éric Moreau
Éric Moreau
Flag of Canada image

Link to home
membership
Create an account to see this answer
Signing up is free. No credit card required.
Create Account