当前位置: 代码迷 >> ASP.NET >> Server.Execute生成静态页的有关问题。(有码)
  详细解决方案

Server.Execute生成静态页的有关问题。(有码)

热度:10113   发布时间:2013-02-25 00:00:00.0
Server.Execute生成静态页的问题。(有码)
目录是这样的:

Manage(文件夹)
  |-----AddInfo.aspx
Info(文件夹)
  |-----Show.aspx

AddInfo.aspx页面是添加信息页面,Show.aspx页面是根据url中id参数来显示信息。
目前的做法是,在添加完信息后,用Server.Execute方法访问Show.aspx页面,生成静态页面,但是报错,错误信息为“为 ../Info/Show.aspx 执行子请求时出错。”

生成静态页代码如下:
C# code
//添加信息操作,此处略。//生成静态页StringWriter writer = new StringWriter();string url = "../Info/Show.aspx?id=12";   //此处url写死,做测试用HttpContext.Current.Server.Execute(url, writer,true); //此处报错,“为 ../Info/Show.aspx 执行子请求时出错。”File.WriteAllText(@"D:\static\1",HttpUtility.HtmlEncode(writer.ToString()));writer.Close();writer.Dispose();


网上没找到相关资料,谢谢了。

------解决方案--------------------------------------------------------
C# code
public static bool WriteFile(string strText,string strContent,string strAuthor)  {   string path = HttpContext.Current.Server.MapPath("/news/");   Encoding code = Encoding.GetEncoding("gb2312");   // 读取模板文件   string temp = HttpContext.Current.Server.MapPath("/news/text");   StreamReader sr=null;   StreamWriter sw=null;   string str="";    try   {    sr = new StreamReader(temp, code);    str = sr.ReadToEnd(); // 读取文件   }   catch(Exception exp)   {    HttpContext.Current.Response.Write(exp.Message);    HttpContext.Current.Response.End();    sr.Close();   }   string htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+"";   // 替换内容   // 这时,模板文件已经读入到名称为str的变量中了   str =str.Replace("ShowArticle",strText); //模板页中的ShowArticle   str = str.Replace("biaoti",strText);   str = str.Replace("content",strContent);   str = str.Replace("author",strAuthor);   // 写文件   try   {    sw = new StreamWriter(path + htmlfilename , false, code);    sw.Write(str);    sw.Flush();   }   catch(Exception ex)   {    HttpContext.Current.Response.Write(ex.Message);    HttpContext.Current.Response.End();   }   finally   {    sw.Close();   }   return true;此函数放在Conn.CS基类中了在添加新闻的代码中引用 注:工程名为Hover    if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)))    {     Response.Write("添加成功");    }    else    {     Response.Write("生成HTML出错!");    }
  相关解决方案