2

次の記事をガイドラインとして使用して、WCFWebHttpサービスを作成しました。

http://blogs.msdn.com/b/endpoint/archive/2010/01/07/getting-started-with-wcf-webhttp-services-in-net-4.aspx

一部を除いて、すべてがうまく機能しています。データベースから連絡先のリストを取得するためにクエリを実行すると、正常に返されます。ただし、同じコード構造を使用してアカウントのリストを取得すると、次のように表示されます。

このウェブページは利用できません

ただし、1つのアカウントに問題なくクエリを実行できます。最初は、アカウントなどのすべての子オブジェクトを読み込もうとしている依存関係の可能性があると思いました。しかし、データベースから返される結果を調べると、それは非常に小さなデータセットです。(42レコード)オブジェクトのシリアル化に関係しているのではないかと思ったので、ファイルに対して独自の小さなJsonシリアライザーメソッドを実行すると、次のエラーが発生しました。

タイプ'MyNamespace.Model.Account'のオブジェクトグラフにはサイクルが含まれており、参照追跡が無効になっている場合はシリアル化できません。

それで私はウェブで検索をしました、そしてすべての結果は単一の記事を指しています。

http://blogs.msdn.com/b/sowmy/archive/2006/03/26/561188.aspx

ただし、この記事はWCF WebHttpサービスには無効であるため、役に立ちません。

何かご意見は?

4

1 に答える 1

0

この記事は、WCFWebHttpサービスにも有効です。これらのサービスのServiceHostへの参照を取得する必要があります。そのブログ投稿の例では、サービスはASP.NETルートと、そのサービスで使用されるインスタンスをWebServiceHostFactory作成するコンポーネントを使用してアクティブ化されています。ServiceHost

したがって、独自のファクトリを作成する必要があり(WebServiceHostFactoryをオーバーライドする可能性があります)、CreateServiceHostでbaseメソッドを呼び出してホストを取得し、Sowmyの記事に従って変更してから返します。

最近、サービスホストファクトリに関する記事をhttp://blogs.msdn.com/b/carlosfigueira/archive/2011/06/14/wcf-extensibility-servicehostfactory.aspxに投稿しました。ここで、これに関する詳細情報を見つけることができます。成分。

于 2011-06-21T03:32:47.057 に答える