私はこれを引き起こしている可能性があるものに完全に迷っています。
ASP.Net MVC 4 RCアプリケーションがあり、WebAPIコントローラーのセットがあります。IListに子オブジェクトのセットを含むオブジェクトを返そうとしています。オブジェクトを要求するたびに、デバッガーで目立った例外がスローされることなく、ブラウザーで500エラーが返されます。Application_Errorハンドラーをglobal.asaxに配置しようとしましたが、そこでもエラーはキャッチされません。
リストが実際のデータベース関係であるか、ハードコードされた文字列のリストであるかは関係ありません。どちらの場合も、要求は失敗します。リストをnullに設定すると、リクエストは成功します。
リストを削除すると、リクエストは成功し、オブジェクトのXML(またはJSON)表現を取得します。
私もこの行を試しました-
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
実際の例外をキャプチャし、それでも何も返さないようにするため。
これが現在のオブジェクトです
public class Authority : IEntity
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string Address1 { get; set; }
public virtual string Address2 { get; set; }
public virtual string City { get; set; }
public virtual string County { get; set; }
public virtual string State { get; set; }
public virtual string ContactPostalCode { get; set; }
//public virtual IList<PostalCode> PostalCodes { get; set; }
public virtual IList<string> RandomTrash { get; set; }
public VPA()
{
//PostalCodes = new List<PostalCode>();
RandomTrash = new List<string> {"foo"};
}
}
コメントアウトされたPostalCodesコレクションに注意してください。これは実際の多対多のデータベース関係です。コメントアウトしてダミーの「RandomTrash」コレクションに置き換えましたが、失敗は同じようです。
どういうわけかシリアル化の失敗だと感じていますが、どうすれば回避できるのかわかりません。それが助けになるなら、私はORMとしてNHibernateを使用しています。
誰かがこれを見たことがありますか?