0

Google のフィードを含む大きなXMLファイルを作成する必要があります。コンソール アプリケーションでコードを実行するか、ローカル マシンの IIS Express で実行されている ASP.NET サイトでコードを実行すると、非常に高速に実行されます。

IIS 7.5 の ASP.net 環境で (Web フォームまたは 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