Objekt sperren ItextSharp

26/11/2007 - 14:39 von Stefan Augendoppler | Report spam
Hallo,
Ich verwende zum Erstellen einiger Auswertungen die Freeware ITextSharp.
In allen Beschreibungen die ich bisher gelesen habe wird mit folgendem Code
begonnen:
string pdfFileName = "HelloWorld.pdf";
Document document = new Document();
PdfWriter.getInstance(document, new FileStream(Server.MapPath(pdfFileName),
FileMode.Create));
document.Open();

Wenn ich das richtig verstehe, wird hier ein neues PDF Document im Server
MapPath erstellt.
Was passiert eigentlich, wenn diesen Code 2 Benutzer gleichzeit ausführen.
Wird der erstellte PDF File dann für einen gesperrt oder wie.
Wàhre es nicht sinnvoll, so ein PDF File in eine Session Variable zu
speichern. Doch wie geht dass????

lg
Stefan
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
26/11/2007 - 14:55 | Warnen spam
Hallo Stefan,

"Stefan Augendoppler" schrieb

string pdfFileName = "HelloWorld.pdf";
Document document = new Document();
PdfWriter.getInstance(document, new FileStream(Server.MapPath(pdfFileName),
FileMode.Create));
document.Open();

Wenn ich das richtig verstehe, wird hier ein neues PDF Document im Server
MapPath erstellt.
Was passiert eigentlich, wenn diesen Code 2 Benutzer gleichzeit ausfà¼hren.



Dann hat einer (der zuletzt kommt) Pech gehabt. Sinnvoller ist es hier wohl,
einen eindeutigen Dateinamen zu verwenden. Je nachdem, ob Du eine temporàre
oder eine dauerhaft gespeicherte Datei schreiben willst, wàre etwas wie
System.Guid oder My.Computer.FileSystem.GetTempFileName() evtl. sinnvoll, um
den Dateinamen zu bilden. Die SessonId würde theoretisch auch gehen, hier ist
aber auch nicht gesichert, dass die nicht irgendwann wieder vergeben wird.
Also wenn überhaupt, sollte man die auch nur für temporàre Dateien nehmen.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen