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 にデプロイしようとしましたが、結果は同じです。
問題を解決するためのアイデアをいただければ幸いです。よろしく