该进程无法访问文件'C:\inetpub \wwwroot \wss \ VirtualDirectories \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ [英] The process cannot access the file 'C:\inetpub\wwwroot\wss\VirtualDirectories\80\Upload\KingSize_2013-04-29.pdf' because it is being used by another process.
问题描述
我使用iTextSharper但输出获得:该方法不能访问该文件 C:\inetpub\wwwroot\wss\VirtualDirectories\80\Upload\KingSize_2013-04-29.pdf '因为它被另一个进程使用。
string strFileName =
CleanUp(LabelFirstName.Text + _ + LabelLastName.Text + _ + DateTime.Now.ToString( yyyy-MM-dd)+
。 + DropDownListDownloadCv0。 SelectedItem.Text);
if (theEmpl!= null )
{
// var objfileinfo = new FileInfo(strFileName);
var document = new iTextSharp.text.Document(PageSize.A4);
PdfWriter.GetInstance(文件,
新 FileStream(Server.MapPath( 〜/ Upload /)+ strFileName,
FileMode.Create));
var sb = new StringBuilder( );
var sw = new StringWriter(sb);
document.Open();
var hTextWriter = new HtmlTextWriter(sw);
hTextWriter.WriteBeginTag( table border = 1 cellpadding = 15\" 跨度>);
hTextWriter.Write(HtmlTextWriter.TagRightChar);
hTextWriter.WriteBeginTag( tr);
hTextWriter.Write(HtmlTextWriter.TagRightChar);
hTextWriter.WriteBeginTag( td);
hTextWriter.Write(HtmlTextWriter.TagRightChar);
var styles = new iTextSharp.text.html.simpleparser.StyleSheet( );
styles.LoadStyle( Loggo, float-right, 20pt跨度>);
ImagePicture.ImageUrl = theEmpl.image;
ImagePicture.ImageAlign = ImageAlign.Left;
ImagePicture.RenderControl(hTextWriter);
var s = new Label
{
Text = < br />
};
s.RenderControl(hTextWriter);
hTextWriter.Write( < div class = \Loggo \> ;跨度>);
Loggo.ImageUrl = theEmpl.logo;
Loggo.RenderControl(hTextWriter);
hTextWriter.Write( < / div>);
var posfirstLast = new 标签
{
Text =
< br /> + < p align ='left'> + LabelPosition.Text + +
LabelFirstName.Text + + LabelLastName.Text + < / p> +
< br />
};
posfirstLast.RenderControl(hTextWriter);
var starkaabout3 = new 标签
{
Text = Label3StrongAbout。文字
};
starkaabout3.RenderControl(hTextWriter);
SetSkillAndLevelMax3();
for ( int i = 0 ; i < RepeaterStrongestSkillsMax2.Controls.Count; i ++)
{
var skill = RepeaterStrongestSkillsMax2.FindControl( skill + i);
var pie = RepeaterStrongestSkillsMax2.FindControl( 馅饼 + i);
如果(技能!= null & pie!= null )
{
pie.RenderControl(hTextWriter);
skill.RenderControl(hTextWriter);
}
}
var lAbout = new 标签
{
Text = < br /> ;< br /> + LabelAbout.Text + < br />< br />< br />
};
lAbout.RenderControl(hTextWriter);
var back = new Label
{
Text =
< br /> < b> + lblbackground.Text + < br /> + lbldateofbirth.Text +
+ LabelDateOfBirth.Text + < br /> + lblphonenumber.Text + +
LabelPhoneNumber.Text + < br /> + lblemail.Text + +
LabelEmail.Text + < br />
};
back.RenderControl(hTextWriter);
var lang = new 标签
{
Text = < p align ='right'> + lbllanguages.Text + < / p>
};
lang.RenderControl(hTextWriter);
foreach ( var lLang in BulletedListLanguages.Items)
{
hTextWriter.WriteLine( < p align ='right'> + - + lLang + < / p>);
}
var lblPre = new 标签
{
Text = < p align ='left'> + lblprevwork.Text + < / p>
};
lblPre.RenderControl(hTextWriter);
foreach ( var lPre in BulletedListPrevWork.Items)
{
hTextWriter.WriteLine( < p align ='left'> + - + lPre + < / p>);
}
var lblEduca = new 标签
{
Text = < p align ='right'> + lbleducations.Text + < / p>
};
lblEduca.RenderControl(hTextWriter);
foreach ( var lEdu in BulletedListEducation.Items)
{
hTextWriter.WriteLine( < p align ='right'> + - + lEdu + < / p>);
}
var lblCours = new 标签
{
Text = < p align ='left'> + lblcourses.Text + < / p>
};
lblCours.RenderControl(hTextWriter);
foreach ( var lCour in BulletedListCourses.Items)
{
hTextWriter.WriteLine( < p align ='left'> + - + lCour + < / p>);
}
var lblBuss = new 标签
{
Text = < p align ='left'> + lblbusniess.Text + < / p>
};
lblBuss.RenderControl(hTextWriter);
foreach ( var lBuss in BulletedListBusiness.Items)
{
hTextWriter.WriteLine( < p align ='left'> + - + lBuss + < / p>);
}
var lblCert = new 标签
{
Text = < p align ='右'> + lblcert.Text + < / p> ;
};
lblCert.RenderControl(hTextWriter);
foreach ( var lCert in BulletedListCertifications.Items)
{
hTextWriter.WriteLine( < p align ='right'> + - + lCert + < / p>);
}
var tech = new 标签
{
Text = lbltechnicalskills.Text + < / br>
};
tech.RenderControl(hTextWriter);
var lblDataBas = new 标签
{
Text = < p align ='left'> + LabelDataBas.Text + < / p>
};
lblDataBas.RenderControl(hTextWriter);
foreach ( var lDataBas in BulletedListDataBase.Items)
{
hTextWriter.WriteLine( < p align ='left'> + - + lDataBas + < / p>);
}
var lblProgramming = new 标签
{
Text = < p align ='left'> + lblprogramming.Text + < / p>
};
lblProgramming.RenderControl(hTextWriter);
foreach ( var lProgramming in BulletedListProgramming.Items)
{
hTextWriter.WriteLine( < p align ='left'> + - + lProgramming + < / p>);
}
var lblMethods = new 标签
{
Text = < p align ='left'> + lblmethods.Text + < / p>
};
lblMethods.RenderControl(hTextWriter);
foreach ( var lMethods in BulletedListMethods.Items)
{
hTextWriter.WriteLine( < p align ='left'> + - + lMethods + < / p>);
}
var lblDevop = new 标签
{
Text = < p align ='left'> + lbldevop.Text + < / p>
};
lblDevop.RenderControl(hTextWriter);
foreach ( var lDevop 在跨度> BulletedDevelopmentTools.Items)
{
hTextWriter.WriteLine(<跨度类= 代码串> 跨度> <跨度类= 代码串><,p align ='left'> + - + lDevop + < / p>);
}
var lblWeb = new 标签
{
Text = < p align ='left'> + lblwebserver.Text + < / p>
};
lblWeb.RenderControl(hTextWriter);
foreach ( var lWeb in BulletedListWebServer.Items)
{
hTextWriter.WriteLine( < p align ='left'> + - + lWeb + < / p>);
}
hTextWriter.WriteEndTag( td跨度>);
hTextWriter.WriteEndTag( tr);
hTextWriter.WriteEndTag( table);
var brrr = new 标签
{
Text = < br />
};
brrr.RenderControl(hTextWriter);
hTextWriter.WriteBeginTag( table border = 1 cellpadding = 15) ;
hTextWriter.Write(HtmlTextWriter.TagRightChar);
hTextWriter.WriteBeginTag( tr);
hTextWriter.Write(HtmlTextWriter.TagRightChar);
hTextWriter.WriteBeginTag( td);
hTextWriter.Write(HtmlTextWriter.TagRightChar);
if (RadioButtonListChooseLang.SelectedItem.Text == 瑞典语)
{
GetAlSwedishlAssigments(theEmpl);
var lbl = new 标签
{
Text = < h1>< br /> + < span class =code-string> Uppdrag + < u />< / h1>
};
lbl.RenderControl(hTextWriter);
for ( int i = 0 ; i < RepeaterAssigments.Controls.Count; i ++)
{
var comp = RepeaterAssigments.FindControl( comp + i);
var sect = RepeaterAssigments.FindControl( 教派 + i);
var area = RepeaterAssigments.FindControl( 是 + i);
var 来自 = RepeaterAssigments.FindControl( 来自 + i);
var to = RepeaterAssigments.FindControl( 太 + i);
var description = RepeaterAssigments.FindControl( des + i);
var 工具= RepeaterAssigments.FindControl( 工具 + i);
var tec = RepeaterAssigments.FindControl( tec + i);
var reference = RepeaterAssigments.FindControl( ref + i);
var namesectorLit = RepeaterAssigments.FindControl( NamesectorLit + i);
var nameAreaLit = RepeaterAssigments.FindControl( NameAreaLit + i);
var nameTechLit = RepeaterAssigments.FindControl( NameTechLit + i);
var nameToolLite = RepeaterAssigments.FindControl( NameToolLit + i);
var nameRefLit = RepeaterAssigments.FindControl( NameRefLit + i);
var spaceLit = RepeaterAssigments.FindControl( SpaceLit + i);
var bottomBorderLit = RepeaterAssigments.FindControl( BottomBorderLit + i);
var manadFran = RepeaterAssigments.FindControl( franmanad + i);
var manadTill = RepeaterAssigments.FindControl( tillmanad + i);
var nyttaKund = RepeaterAssigments.FindControl( kundnyttaSve + i);
var arbetsuppgifterSve = RepeaterAssigments.FindControl( arbetsuppgifterSve + i);
var rollSve = RepeaterAssigments.FindControl( rollSve + i);
var arbetsuppgifterLit = RepeaterAssigments.FindControl( arbetsuppgifter + i);
var rollLit = RepeaterAssigments.FindControl( roll + i);
var uppdragLit = RepeaterAssigments.FindControl( updragSve + i);
var kundnyttaLit = RepeaterAssigments.FindControl( NyttaKundSve + i);
if (comp!= null &&& 来自!= null
&& to!= null && description!= null && tool!= null & & tec!= null
&& nameTechLit!= null && nameToolLite!= null &&
spaceLit!= null && bottomBorderLit! = null &&
manadFran!= null && manadTill!= < span class =code-keyword> null && nyt taKund!= null
&& arbetsuppgifterSve!= null && rollSve!= null && arbetsuppgifterLit!= null &&
rollLit!= null && uppdragLit!= null && kundnyttaLit!= null )
{
comp.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
rollLit.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
rollSve.RenderControl(hTextWriter);
来自 .RenderControl(hTextWriter);
manadFran.RenderControl(hTextWriter);
to.RenderControl(hTextWriter);
manadTill.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
kundnyttaLit.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
nyttaKund.RenderControl(hTextWriter);
arbetsuppgifterLit.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
arbetsuppgifterSve.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
uppdragLit.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
description.RenderControl(hTextWriter);
nameToolLite.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
tool.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
nameTechLit.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
tec.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
var image = new Image
{
ImageUrl =
SPContext.Current.Web.Url + \"/\" +
SPContext.Current.File.Url +
\"~/_layouts/images/Cv.Knowit/img_line.png\"
};
image.RenderControl(hTextWriter);
bottomBorderLit.RenderControl(hTextWriter);
}
else if(sect != null)
{
sect.RenderControl(hTextWriter);
}
else if(namesectorLit!=null)
{
namesectorLit.RenderControl(hTextWriter);
}
if(area != null)
{
area.RenderControl(hTextWriter);
}
else if(nameAreaLit!=null)
{
nameAreaLit.RenderControl(hTextWriter);
}
else if(reference != null)
{
reference.RenderControl(hTextWriter);
}
if(nameRefLit!=null)
{
nameRefLit.RenderControl(hTextWriter);
}
}
}
else if (RadioButtonListChooseLang.SelectedItem.Text == \"English\")
{
GetAlEnglishAssigments(theEmpl);
var lbl = new Label
{
Text = \"<h1><br/>\" + \"Assigments\" + \"</h1>\"
};
lbl.RenderControl(hTextWriter);
for (int i = 0; i < RepeaterAssigments.Controls.Count; i++)
{
var comp = RepeaterAssigments.FindControl(\"comp\" + i);
var sect = RepeaterAssigments.FindControl(\"sect\" + i);
var area = RepeaterAssigments.FindControl(\"are\" + i);
var from = RepeaterAssigments.FindControl(\"fro\" + i);
var to = RepeaterAssigments.FindControl(\"too\" + i);
var description = RepeaterAssigments.FindControl(\"des\" + i);
var tool = RepeaterAssigments.FindControl(\"tool\" + i);
var tec = RepeaterAssigments.FindControl(\"tec\" + i);
var reference = RepeaterAssigments.FindControl(\"ref\" + i);
var namesectorLit = RepeaterAssigments.FindControl(\"NamesectorLit\" + i);
var nameAreaLit = RepeaterAssigments.FindControl(\"NameAreaLit\" + i);
var nameTechLit = RepeaterAssigments.FindControl(\"NameTechLit\" + i);
var nameToolLite = RepeaterAssigments.FindControl(\"NameToolLit\" + i);
var nameRefLit = RepeaterAssigments.FindControl(\"NameRefLit\" + i);
var spaceLit = RepeaterAssigments.FindControl(\"SpaceLit\" + i);
var bottomBorderLit = RepeaterAssigments.FindControl(\"BottomBorderLit\" + i);
if (comp != null && sect != null && area != null && from != null
&& to != null && description != null && tool != null && tec != null &&
reference != null
&& namesectorLit != null
&& nameAreaLit != null && nameTechLit != null && nameToolL ite != null &&
nameRefLit != null && spaceLit != null && bottomBorderLit != null)
{
comp.RenderControl(hTextWriter);
namesectorLit.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
sect.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
nameAreaLit.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
area.RenderControl(hTextWriter);
from.RenderControl(hTextWriter);
to.RenderControl(hTextWriter);
description.RenderControl(hTextWriter);
nameToolLite.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
tool.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
nameTechLit.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
tec.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
nameRefLit.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
reference.RenderControl(hTextWriter);
spaceLit.RenderControl(hTextWriter);
var image = new Image
{
ImageUrl =
SPContext.Current.Web.Url + \"/\" +
SPContext.Current.File.Url +
\"~/_layouts/images/Cv.Knowit/img_line.png\"
};
image.RenderControl(hTextWriter);
bottomBorderLit.RenderControl(hTextWriter);
}
hTextWriter.WriteEndTag(\"td\");
hTextWriter.WriteEndTag(\"tr\");
hTextWriter.WriteEndTag(\"table\");
String strHtml1 = sw.ToString();
var hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
hw.SetStyleSheet(styles);
hw.Parse(new StringReader(strHtml1));
document.Close();
}
}
Response.ContentType = \"Application/pdf\";
Response.AppendHeader(\"Content-Disposition\", \"attachment; filename=\" + strFileName);
Response.TransmitFile(Server.MapPath(\"~/Upload/\") + strFileName);
Response.End();
}
}
}
This is easy to investigate.
First of all, the similar question was asked here many times, and from this experience I know: in most cases the blocking process is your own process.您可能忘记在同一个应用程序中处理/关闭某些内容。所以,首先,检查一下。要探索这种可能性,请参阅我过去的答案:
清除C#中的句柄 [ ^ ]。
在这个答案中,注意使用/ code>语句可以帮助您保证在使用后正确处理相应的文件系统对象,而不是保持文件锁定。
在同样的情况下,你真的需要调查哪个进程拥有哪个文件。为此,我建议使用 Sysinternals Suite 中的一个实用程序。这组实用程序(以前来自 Winternals 公司,目前在Microsoft)是必须的对于任何开发人员,请参阅:
http://technet.microsoft.com/en -us / sysinternals / bb842062 [ ^ ],
http://technet.microsoft.com/en-us/sysinternals / bb545027 [ ^ ]。
您需要的实用程序是 handle.exe ,请参阅:
http://technet.microsoft.com/en-us/sysinternals/bb896655 [ ^ ]。
在您的情况下,您使用文件名参数:
handle.exe< file_name>
此实用程序将扫描所有类型的句柄,而不仅仅是文件句柄。对于文件,它将扫描与文件名匹配的所有文件句柄(因此它不必是完整路径名)并返回足以识别每个进程的信息,包括其 pid 。 So, if you need more information on a process in question, you can also use other Sysinternals utilities, in particular, its Process Explorer:
http://technet.microsoft.com/en-us/sysinternals/bb896653[^].
Good luck,
—SA
thats because u are creating a filestream object but not closing it kindly use as below
FileStream file = new FileStream(stringPath);
and after closing your pdfDocument close your stream also
file.Close();
for ref you can use below link
Generating-PDF-using-ItextSharp-with-Footer-in-Csh
I am using iTextSharper but the output gets : The process cannot access the file ''C:\inetpub\wwwroot\wss\VirtualDirectories\80\Upload\KingSize_2013-04-29.pdf'' because it is being used by another process.
string strFileName = CleanUp(LabelFirstName.Text + "_" + LabelLastName.Text + "_" + DateTime.Now.ToString("yyyy-MM-dd") + "." + DropDownListDownloadCv0.SelectedItem.Text); if (theEmpl != null) { //var objfileinfo = new FileInfo(strFileName); var document = new iTextSharp.text.Document(PageSize.A4); PdfWriter.GetInstance(document, new FileStream(Server.MapPath("~/Upload/") + strFileName, FileMode.Create)); var sb = new StringBuilder(); var sw = new StringWriter(sb); document.Open(); var hTextWriter = new HtmlTextWriter(sw); hTextWriter.WriteBeginTag("table border=1 cellpadding=15"); hTextWriter.Write(HtmlTextWriter.TagRightChar); hTextWriter.WriteBeginTag("tr"); hTextWriter.Write(HtmlTextWriter.TagRightChar); hTextWriter.WriteBeginTag("td"); hTextWriter.Write(HtmlTextWriter.TagRightChar); var styles = new iTextSharp.text.html.simpleparser.StyleSheet(); styles.LoadStyle("Loggo", "float-right", "20pt"); ImagePicture.ImageUrl = theEmpl.image; ImagePicture.ImageAlign = ImageAlign.Left; ImagePicture.RenderControl(hTextWriter); var s = new Label { Text = "<br/>" }; s.RenderControl(hTextWriter); hTextWriter.Write("<div class=\"Loggo\">"); Loggo.ImageUrl = theEmpl.logo; Loggo.RenderControl(hTextWriter); hTextWriter.Write("</div>"); var posfirstLast = new Label { Text = "<br/>" + "<p align='left'>" + LabelPosition.Text + " " + LabelFirstName.Text + " " + LabelLastName.Text + "</p>" + "<br/>" }; posfirstLast.RenderControl(hTextWriter); var starkaabout3 = new Label { Text = Label3StrongAbout.Text }; starkaabout3.RenderControl(hTextWriter); SetSkillAndLevelMax3(); for (int i = 0; i < RepeaterStrongestSkillsMax2.Controls.Count; i++) { var skill = RepeaterStrongestSkillsMax2.FindControl("skill" + i); var pie = RepeaterStrongestSkillsMax2.FindControl("pie" + i); if (skill != null & pie != null) { pie.RenderControl(hTextWriter); skill.RenderControl(hTextWriter); } } var lAbout = new Label { Text = "<br/><br/>" + LabelAbout.Text + "<br/><br/><br/>" }; lAbout.RenderControl(hTextWriter); var back = new Label { Text = "<br/>" + lblbackground.Text + "<br/>" + lbldateofbirth.Text + " " + LabelDateOfBirth.Text + "<br/>" + lblphonenumber.Text + " " + LabelPhoneNumber.Text + "<br/>" + lblemail.Text + " " + LabelEmail.Text + "<br/>" }; back.RenderControl(hTextWriter); var lang = new Label { Text = "<p align='right'>" + lbllanguages.Text + "</p>" }; lang.RenderControl(hTextWriter); foreach (var lLang in BulletedListLanguages.Items) { hTextWriter.WriteLine("<p align='right'>" + " - " + lLang + "</p>"); } var lblPre = new Label { Text = "<p align='left'>" + lblprevwork.Text + "</p>" }; lblPre.RenderControl(hTextWriter); foreach (var lPre in BulletedListPrevWork.Items) { hTextWriter.WriteLine("<p align='left'>" + " - " + lPre + "</p>"); } var lblEduca = new Label { Text = "<p align='right'>" + lbleducations.Text + "</p>" }; lblEduca.RenderControl(hTextWriter); foreach (var lEdu in BulletedListEducation.Items) { hTextWriter.WriteLine("<p align='right'>" + " - " + lEdu + "</p>"); } var lblCours = new Label { Text = "<p align='left'>" + lblcourses.Text + "</p>" }; lblCours.RenderControl(hTextWriter); foreach (var lCour in BulletedListCourses.Items) { hTextWriter.WriteLine("<p align='left'>" + " - " + lCour + "</p>"); } var lblBuss = new Label { Text = "<p align='left'>" + lblbusniess.Text + "</p>" }; lblBuss.RenderControl(hTextWriter); foreach (var lBuss in BulletedListBusiness.Items) { hTextWriter.WriteLine("<p align='left'>" + " - " + lBuss + "</p>"); } var lblCert = new Label { Text = "<p align='right'>" + lblcert.Text + "</p>" }; lblCert.RenderControl(hTextWriter); foreach (var lCert in BulletedListCertifications.Items) { hTextWriter.WriteLine("<p align='right'>" + " - " + lCert + "</p>"); } var tech = new Label { Text = lbltechnicalskills.Text + "</br>" }; tech.RenderControl(hTextWriter); var lblDataBas = new Label { Text = "<p align='left'>" + LabelDataBas.Text + "</p>" }; lblDataBas.RenderControl(hTextWriter); foreach (var lDataBas in BulletedListDataBase.Items) { hTextWriter.WriteLine("<p align='left'>" + " - " + lDataBas + "</p>"); } var lblProgramming = new Label { Text = "<p align='left'>" + lblprogramming.Text + "</p>" }; lblProgramming.RenderControl(hTextWriter); foreach (var lProgramming in BulletedListProgramming.Items) { hTextWriter.WriteLine("<p align='left'>" + " - " + lProgramming + "</p>"); } var lblMethods = new Label { Text = "<p align='left'>" + lblmethods.Text + "</p>" }; lblMethods.RenderControl(hTextWriter); foreach (var lMethods in BulletedListMethods.Items) { hTextWriter.WriteLine("<p align='left'>" + " - " + lMethods + "</p>"); } var lblDevop = new Label { Text = "<p align='left'>" + lbldevop.Text + "</p>" }; lblDevop.RenderControl(hTextWriter); foreach (var lDevop in BulletedDevelopmentTools.Items) { hTextWriter.WriteLine("<p align='left'>" + " - " + lDevop + "</p>"); } var lblWeb = new Label { Text = "<p align='left'>" + lblwebserver.Text + "</p>" }; lblWeb.RenderControl(hTextWriter); foreach (var lWeb in BulletedListWebServer.Items) { hTextWriter.WriteLine("<p align='left'>" + " - " + lWeb + "</p>"); } hTextWriter.WriteEndTag("td"); hTextWriter.WriteEndTag("tr"); hTextWriter.WriteEndTag("table"); var brrr = new Label { Text = "<br/>" }; brrr.RenderControl(hTextWriter); hTextWriter.WriteBeginTag("table border=1 cellpadding=15"); hTextWriter.Write(HtmlTextWriter.TagRightChar); hTextWriter.WriteBeginTag("tr"); hTextWriter.Write(HtmlTextWriter.TagRightChar); hTextWriter.WriteBeginTag("td"); hTextWriter.Write(HtmlTextWriter.TagRightChar); if (RadioButtonListChooseLang.SelectedItem.Text == "Swedish") { GetAlSwedishlAssigments(theEmpl); var lbl = new Label { Text = "<h1><br/>" + "Uppdrag" + "<u/></h1>" }; lbl.RenderControl(hTextWriter); for (int i = 0; i < RepeaterAssigments.Controls.Count; i++) { var comp = RepeaterAssigments.FindControl("comp" + i); var sect = RepeaterAssigments.FindControl("sect" + i); var area = RepeaterAssigments.FindControl("are" + i); var from = RepeaterAssigments.FindControl("fro" + i); var to = RepeaterAssigments.FindControl("too" + i); var description = RepeaterAssigments.FindControl("des" + i); var tool = RepeaterAssigments.FindControl("tool" + i); var tec = RepeaterAssigments.FindControl("tec" + i); var reference = RepeaterAssigments.FindControl("ref" + i); var namesectorLit = RepeaterAssigments.FindControl("NamesectorLit" + i); var nameAreaLit = RepeaterAssigments.FindControl("NameAreaLit" + i); var nameTechLit = RepeaterAssigments.FindControl("NameTechLit" + i); var nameToolLite = RepeaterAssigments.FindControl("NameToolLit" + i); var nameRefLit = RepeaterAssigments.FindControl("NameRefLit" + i); var spaceLit = RepeaterAssigments.FindControl("SpaceLit" + i); var bottomBorderLit = RepeaterAssigments.FindControl("BottomBorderLit" + i); var manadFran = RepeaterAssigments.FindControl("franmanad" + i); var manadTill = RepeaterAssigments.FindControl("tillmanad" + i); var nyttaKund = RepeaterAssigments.FindControl("kundnyttaSve" + i); var arbetsuppgifterSve = RepeaterAssigments.FindControl("arbetsuppgifterSve" + i); var rollSve = RepeaterAssigments.FindControl("rollSve" + i); var arbetsuppgifterLit = RepeaterAssigments.FindControl("arbetsuppgifter" + i); var rollLit = RepeaterAssigments.FindControl("roll" + i); var uppdragLit = RepeaterAssigments.FindControl("updragSve" + i); var kundnyttaLit = RepeaterAssigments.FindControl("NyttaKundSve" + i); if (comp != null && from != null && to != null && description != null && tool != null && tec != null && nameTechLit != null && nameToolLite != null && spaceLit != null && bottomBorderLit != null && manadFran != null && manadTill != null && nyttaKund != null && arbetsuppgifterSve != null && rollSve != null && arbetsuppgifterLit != null && rollLit != null && uppdragLit != null && kundnyttaLit != null) { comp.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); rollLit.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); rollSve.RenderControl(hTextWriter); from.RenderControl(hTextWriter); manadFran.RenderControl(hTextWriter); to.RenderControl(hTextWriter); manadTill.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); kundnyttaLit.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); nyttaKund.RenderControl(hTextWriter); arbetsuppgifterLit.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); arbetsuppgifterSve.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); uppdragLit.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); description.RenderControl(hTextWriter); nameToolLite.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); tool.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); nameTechLit.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); tec.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); var image = new Image { ImageUrl = SPContext.Current.Web.Url + "/" + SPContext.Current.File.Url + "~/_layouts/images/Cv.Knowit/img_line.png" }; image.RenderControl(hTextWriter); bottomBorderLit.RenderControl(hTextWriter); } else if(sect != null) { sect.RenderControl(hTextWriter); } else if(namesectorLit!=null) { namesectorLit.RenderControl(hTextWriter); } if(area != null) { area.RenderControl(hTextWriter); } else if(nameAreaLit!=null) { nameAreaLit.RenderControl(hTextWriter); } else if(reference != null) { reference.RenderControl(hTextWriter); } if(nameRefLit!=null) { nameRefLit.RenderControl(hTextWriter); } } } else if (RadioButtonListChooseLang.SelectedItem.Text == "English") { GetAlEnglishAssigments(theEmpl); var lbl = new Label { Text = "<h1><br/>" + "Assigments" + "</h1>" }; lbl.RenderControl(hTextWriter); for (int i = 0; i < RepeaterAssigments.Controls.Count; i++) { var comp = RepeaterAssigments.FindControl("comp" + i); var sect = RepeaterAssigments.FindControl("sect" + i); var area = RepeaterAssigments.FindControl("are" + i); var from = RepeaterAssigments.FindControl("fro" + i); var to = RepeaterAssigments.FindControl("too" + i); var description = RepeaterAssigments.FindControl("des" + i); var tool = RepeaterAssigments.FindControl("tool" + i); var tec = RepeaterAssigments.FindControl("tec" + i); var reference = RepeaterAssigments.FindControl("ref" + i); var namesectorLit = RepeaterAssigments.FindControl("NamesectorLit" + i); var nameAreaLit = RepeaterAssigments.FindControl("NameAreaLit" + i); var nameTechLit = RepeaterAssigments.FindControl("NameTechLit" + i); var nameToolLite = RepeaterAssigments.FindControl("NameToolLit" + i); var nameRefLit = RepeaterAssigments.FindControl("NameRefLit" + i); var spaceLit = RepeaterAssigments.FindControl("SpaceLit" + i); var bottomBorderLit = RepeaterAssigments.FindControl("BottomBorderLit" + i); if (comp != null && sect != null && area != null && from != null && to != null && description != null && tool != null && tec != null && reference != null && namesectorLit != null && nameAreaLit != null && nameTechLit != null && nameToolLite != null && nameRefLit != null && spaceLit != null && bottomBorderLit != null) { comp.RenderControl(hTextWriter); namesectorLit.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); sect.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); nameAreaLit.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); area.RenderControl(hTextWriter); from.RenderControl(hTextWriter); to.RenderControl(hTextWriter); description.RenderControl(hTextWriter); nameToolLite.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); tool.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); nameTechLit.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); tec.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); nameRefLit.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); reference.RenderControl(hTextWriter); spaceLit.RenderControl(hTextWriter); var image = new Image { ImageUrl = SPContext.Current.Web.Url + "/" + SPContext.Current.File.Url + "~/_layouts/images/Cv.Knowit/img_line.png" }; image.RenderControl(hTextWriter); bottomBorderLit.RenderControl(hTextWriter); } hTextWriter.WriteEndTag("td"); hTextWriter.WriteEndTag("tr"); hTextWriter.WriteEndTag("table"); String strHtml1 = sw.ToString(); var hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document); hw.SetStyleSheet(styles); hw.Parse(new StringReader(strHtml1)); document.Close(); } } Response.ContentType = "Application/pdf"; Response.AppendHeader("Content-Disposition", "attachment; filename=" + strFileName); Response.TransmitFile(Server.MapPath("~/Upload/") + strFileName); Response.End(); } } }解决方案This is easy to investigate.
First of all, the similar question was asked here many times, and from this experience I know: in most cases the blocking process is your own process. You could have forgotten to dispose/close something in the same application. So, first of all, check it up. To explore this possibility, please see my past answer:
Clearing a Handle in C#[^].
In this answer, pay attention for the using of theusing
statement which helps you to guarantee that appropriate file system object is properly disposed after use, not keeping the file locked.
In same cases, you really need to investigate which process holds which file. For this, I recommend using one utility from the Sysinternals Suite. This set of utilities (formerly from Winternals company, presently at Microsoft) is a must-have for any developer, please see:
http://technet.microsoft.com/en-us/sysinternals/bb842062[^],
http://technet.microsoft.com/en-us/sysinternals/bb545027[^].
The utility you need is "handle.exe", please see:
http://technet.microsoft.com/en-us/sysinternals/bb896655[^].
In your case, you use it with file name parameter:
handle.exe <file_name>
This utility will scan all kinds of handles, not just file handles. For file, it will scan all file handles matching the file name (so it does not have to be a full path name) and return information sufficient to identify each process, including its pid. So, if you need more information on a process in question, you can also use other Sysinternals utilities, in particular, its Process Explorer:
http://technet.microsoft.com/en-us/sysinternals/bb896653[^].
Good luck,
—SA
thats because u are creating a filestream object but not closing it kindly use as below
FileStream file = new FileStream(stringPath);
and after closing your pdfDocument close your stream also
file.Close();
for ref you can use below link
Generating-PDF-using-ItextSharp-with-Footer-in-Csh
这篇关于该进程无法访问文件'C:\inetpub \wwwroot \wss \ VirtualDirectories \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!