0

我们需要构建一个包含 Google 提要的大型XML文件。如果我们在控制台应用程序中执行代码,或者在本地机器上运行在 IIS Express 下的 ASP.NET 站点中,它会运行得非常快。

如果我们在 IIS 7.5 下的 ASP.net 环境中执行它(作为 webforms 或 MVC 站点),它的执行速度会大大降低。

我们使用一个xmltextwriter对象并通过 读取数据SqlDataReader,每次读取一行时,我们创建不同的节点并将它们写入磁盘。

xmlFeedWriterToFile = new XmlTextWriter(tempXmlfileName, Encoding.UTF8);
while (feedReader.Read())
{
    xmlFeedWriterToFile.WriteStartElement("item");
    // ID
    xmlFeedWriterToFile.WriteStartElement("id", "http://base.google.com/ns/1.0");
    if (this.ReturnSKULevelResults)
        // SKU-specific ID
        xmlFeedWriterToFile.WriteString(string.Format("{0}", feedReader.GetString(4)));
    else
    {
        xmlFeedWriterToFile.WriteString(string.Format("{0}_{1}", feedReader.GetString(1), feedReader.GetString(2)));
        xmlFeedWriterToFile.WriteEndElement();
    }
    // other code that writes XML nodes in the XmlTextWriter object

似乎 ASP.Net 应用程序池会减慢速度,因为在控制台应用程序中执行相同的例程非常快。

我们还尝试将 Web 应用程序部署在不同的 WebServer 上,但结果是相同的:

任何解决该问题的想法将不胜感激。问候

4

0 回答 0