我使用以下文章作为指南创建了一个WCF WebHttp服务。
除了一部分,我的一切都很好。当我查询从我的数据库中获取联系人列表时,它返回正常。但是,当我使用相同的代码结构来获取帐户列表时,它会告诉我:
此网页不可用
但是,我可以查询单个帐户没问题。起初我认为它可能是一个依赖性的东西,它试图加载帐户上的所有子对象等等。但是,当我检查从数据库返回的结果时,它是一组非常小的数据。 (42条记录)所以我认为它可能与对象的序列化有关,所以我对文件做了我自己的小Json序列化方法,并得到以下错误。
“MyNamespace.Model.Account”类型的对象图包含周期,如果禁用参考跟踪,则无法序列化。
所以我在网上进行了搜索,所有结果都指向一篇单独的文章..
http://blogs.msdn.com/b/sowmy/archive/2006/03/26/561188.aspx
但是,本文对我没有帮助,因为它对WCF WebHttp服务无效。
有什么想法吗?
答案 0 :(得分:0)
该文章对WCF WebHttp服务也有效 - 您只需要获取对这些服务的ServiceHost的引用。在该博客文章的示例中,使用ASP.NET路由和WebServiceHostFactory
激活服务,ServiceHost
是创建该服务使用的{{1}}实例的组件。
所以你必须创建自己的工厂(可能会覆盖WebServiceHostFactory),而在CreateServiceHost上你要调用基本方法来获取主机,根据Sowmy的文章修改它,然后返回它。
我最近在http://blogs.msdn.com/b/carlosfigueira/archive/2011/06/14/wcf-extensibility-servicehostfactory.aspx发布了一篇关于服务主机工厂的文章,您可以在其中找到有关此组件的更多信息。