NickMalloy
asked on
Problem with creating PDF on Production server
I have an application that 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. Line 66 is
System.UnauthorizedAccessE xception: Access to the path 'C:\Windows\SysWOW64\inets rv\Eval120 0.pdf' is denied. at System.IO.__Error.WinIOErr or(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(Stri ng path) at GeneratePDF.Page_Load(Obje ct sender, EventArgs e) in c:\Projects\appcreate\Gene ratePDF.as px.cs:line 66
Here is the complete code.
using (FileStream fs = File.Create(@"Eval" + DaRec + ".pdf"))
System.UnauthorizedAccessE
Here is the complete 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());
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.