by WebSurfer
20. October 2011 23:45
BlogEngine.NET バージョン 2.0 で、APML ドキュメントの検索の際、検索先に APML ドキュメントが存在しない場合などに、サーバーエラーになることがあります。調べてみたところ、バージョン 2.0 で導入されたページャー(App_Code/Controls/PostPager.cs)で NullReferenceException がスローされるからでした。
原因は、PagerTag メソッドで this.Posts が null になってしまうからです。回避策は、対症療法的ですが、this.Posts が null のときは PagerTag メソッドの戻り値を null にするようにしました。
private string PagerTag()
{
var retValue = string.Empty;
// ・・・中略・・・
if (this.Posts == null)
{
return null;
}
var visiblePosts = this.Posts.FindAll(p => p.IsVisible);
// ・・・後略・・・
ページャーで処置するのが適当か(そもそも、不要なページャーは最初から配置しないようにできないか)を考えましたが、修正が面倒そうだったのでやめました。(笑)