すべて、SolrNet Duplicate File Conents
私は、SolrNetのMVCアプリケーションの機能の一部を拡張する方法を書いています。非常にシンプルで、私のコントローラには次のものを追加しました。
パブリック文字列インデックス(){ が { VARのSolr = ServiceLocator.Current.GetInstance>()してみてください。 文字列qs = Request.QueryString ["q"]; var results = solr.Query(新しいSolrQueryByField( "asciiname"、qs));
StringBuilder buffer = new StringBuilder();
buffer.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
buffer.Append("<kml xmlns=\"http://www.opengis.net/kml/2.2\"\n");
buffer.Append(" xmlns:gx=\"http://www.google.com/kml/ext/2.2\">\n");
buffer.Append("<Document>\n");
buffer.Append("<name>\n");
buffer.Append("Gazetteer\n");
buffer.Append("</name>\n");
buffer.Append("<description>\n");
buffer.Append("World Places\n");
buffer.Append("</description>\n");
foreach (var i in results)
{
String lat = i.latitude.ToString();
String lon = i.longitude.ToString();
String name = i.asciiName.ToString();
String coords = lon.ToString() + "," + lat.ToString();
name = name.Replace("&", "&");
name = name.Replace("<", "<");
name = name.Replace(">", ">");
buffer.Append("<Placemark>\n");
buffer.Append("<name>\n");
buffer.Append(name);
buffer.Append("</name>\n");
buffer.Append("<Point>\n");
buffer.Append("<coordinates>\n");
buffer.Append(coords);
buffer.Append("</coordinates>\n");
buffer.Append("</Point>\n");
buffer.Append("</Placemark>\n");
}
buffer.Append("</Document>\n");
buffer.Append("</kml>");
Response.Write(buffer.ToString());
Response.AddHeader("content-disposition", "attachment; filename=geonames.kml");
Response.ContentType = "application/vnd.google-earth.kml+xml";
Response.AppendHeader("Content-Encoding", "kml");
return buffer.ToString();
}
catch (Exception)
{
return "ERROR";
}
}
KMLファイルは生成されますが、タグからコンテンツが複製されます。これはvar solr = ServiceLocator.Current.GetInstance>();で起こっていますか?何らかの理由で?私はいつもデバッガを歩いていて、なぜそれが2回全部書き出されているのか分からないようです。 foreachループを利用して、それを正しく反復処理しますが、再度、ファイル全体の内容を複製しています。
これについての助けがあれば助かります! アダム