1

ADO.NETデータサービスでSilverlight2を使用しており、Silverlightページをテストするために、同じドメインで正常に機能するサービスを使用しました。次に、プロキシまたは中間サービス(Silverlightアプリと同じドメインにある)を使用することにしました。これは、基本的に別のドメインにあるサービスを表示するだけです(他のドメインのサービスのサービス参照で生成されたクラスを使用してローカルサービスで公開されている型と、Uriが指すように設定するコンストラクターを作成します)。内部アプリケーションにもサービスを使用するため、SilverlightサーバーをDMZに配置し、サービスを内部ドメインに配置したいので、この方法で実行したかったのですが、これはクロスドメインを回避する方法のようです。 Silverlightの制限。

次のクエリを使用すると、これは正常に機能します。

var questions = (from q in context.Question
                            select q)

しかし、次のようにexpandを使おうとするとすぐに:

var questions = (from q in context.Question.Expand("Answers")
                            select q)

次のような例外が発生します。

最後の投影後のクエリオプション(orderby、where、take、skip)のみを指定できます。

スタックトレースは次のとおりです。

System.Data.Services.WebUtil.GetRequestEnumerator(IEnumerable enumerable)at System.Data.Services.DataService 1.SerializeResponseBody(RequestDescription description, IDataService dataService) at System.Data.Services.DataService1.HandleNonBatchRequest(RequestDescription description)at System.Data.Services.DataService`1.HandleRequest()

この背後にある理由について誰かが何か提案がありますか?これはもちろん内部サービスでは問題なく機能しますが、クエリは構成可能であるため、プロキシサービスでも機能すると思いました...

どんな助けでも大歓迎です!

4

1 に答える 1

1

クライアント側で LoadProperty メソッドを使用することで、この問題を回避することができました。そのため、すべての質問を取得してから、LoadProperty("Answers") と質問を呼び出します。

于 2009-04-17T04:41:13.217 に答える