public static bool GenerateSitemapFile(bool isFull) { bool flag = true; try { List <SitemapNode> sitemapNodeList = new List <SitemapNode>(); IEnumerable <UrlNode> urlNodes = BaseDataDAL.GetUrls(isFull); if (urlNodes != null && urlNodes.Any()) { foreach (var urlNode in urlNodes) { sitemapNodeList.Add(new SitemapNode() { Url = urlNode.URL, Frequency = SitemapFrequency.Weekly, Priority = 2, LastModified = DateTime.Now }); } } WeeklySitemapJob.Logger.Info("有" + sitemapNodeList.Count() + "个URL需要导入文件"); int count = sitemapNodeList.Count() / 20000; List <string> filelist = new List <string>(); for (int i = 0; i <= count; i++) { var sitemapList = sitemapNodeList.Skip(i * 20000).Take(20000); string sitemapstr = GetSitemapDocument(sitemapList); MemoryStream baoyangstream = GenerateStreamFromString(sitemapstr); string filename = string.Format("Sitemap_{0}_{1}.xml", DateTime.Now.ToString("yyyy-MM-dd"), i); using (FileStream filestream = new FileStream(filename, FileMode.Create)) { baoyangstream.WriteTo(filestream); filelist.Add(filename); } } AddFileToZip("sitemap.zip", filelist); Attachment fileattachment = new Attachment("sitemap.zip"); SendMail("SitemapFiles", ConfigurationManager.AppSettings["SEOFileJob:To"], fileattachment); } catch (Exception ex) { flag = false; WeeklySitemapJob.Logger.Error(ex); } return(flag); }