关于生成静态页面
我在网上找到一段程序
/// <summary>
/// 静态生成页面的方法
/// </summary>
/// <param name="strPageUrl">生成源</param>
/// <param name="strFileName">生成到</param>
public bool MakePage(string strPageUrl, string strFileName)
{
string strDir, strFilePage;
strDir = @"File/";//更新到的文件夹
strFilePage = Server.MapPath(strDir + strFileName);
StreamWriter sw = null;
//获得aspx的静态html
try
{
if (!Directory.Exists(Server.MapPath(strDir)))
{
Directory.CreateDirectory(Server.MapPath(strDir));
}
if (File.Exists(strFilePage))
{
File.Delete(strFilePage);
}
sw = new StreamWriter(strFilePage, false, System.Text.Encoding.GetEncoding("UTF-8"));
System.Net.WebRequest wReq = System.Net.WebRequest.Create(strPageUrl);
System.Net.WebResponse wResp = wReq.GetResponse();
System.IO.Stream respStream = wResp.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("UTF-8"));
sw.Write(reader.ReadToEnd());
}
catch (Exception ex)
{
// msg.ShowMsg("'" + strFileName + "'生成出错:" + ex.Message);
return false;//生成到出错
}
finally
{
sw.Flush();
sw.Close();
sw = null;
}
return true;
}
调用:
string strUrl = HttpContext.Current.Request.Url.ToString();
if (MakePage(strUrl, "Navigate.html"))
{
Response.Redirect("File/Navigate.html");
}
但是每次执行到
System.Net.WebResponse wResp = wReq.GetResponse();
时,又会再重新调用一次,然后就出错。
错误提示:Navigate.html文件正在被另一个进程使用。
求教:要把当前页生成静态页面怎么解决。