1

非常に奇妙な問題があります。RIA サービスを使用して Silverlight ビジネス アプリケーションを開発しています。

サーバー側にいくつかの DomainServices がありますが、そのうちの 1 つに問題があり、メソッドの 1 つを呼び出すことができない場合があります (SL クライアントでは、「NotFound」例外が発生し、要求は発生しません)サーバーに到着します(ドメインサービスのコンストラクターにブレークポイントを入れました)!

物事をさらに奇妙にするもの:

  • SL クライアントからの呼び出しが失敗した場合、Fiddler2 を起動すると、2 回目の (または連続する) 呼び出しが正常に機能します。フィドラーを閉じると、また不安定になります。
  • (リファクタリングを介して) 呼び出したいメソッドの名前を変更した場合、SL クライアント側のコンテキストでも名前を変更したメソッドを呼び出すと、呼び出しを行うたびに成功します!

これが私の疑惑の方法です:

[Invoke]
public void RegisterTrainingProgramCompletion(bool isCompleted, int result, string sportsManNote)
{
 //...
}

このメソッドの名前を「RegisterTpCompletion」に変更すると、(信じられないほど) 機能します。

DomainService はいくつかの属性でマークされています。

[EnableClientAccess()]
[RequiresAuthentication()]
public class NextTrainingProgramDomainService : DomainService

どうにかしてサーバー側をログに記録し、WCF スタックから次の例外を受け取りました。

ネットワークから受信した XML に問題があります。詳細については、内部例外を参照してください。System.ServiceModel.Channels.HttpInput.DecodeBufferedMessage(ArraySegment`1 バッファー、ストリーム inputStream) で System.ServiceModel.Channels.HttpInput.ReadBufferedMessage(ストリーム inputStream) で System.ServiceModel.Channels.HttpInput.ParseIncomingMessage(Exception& requestException) システムで.ServiceModel.Channels.HttpChannelListener.HttpContextReceived (HttpRequestContext コンテキスト、アクション コールバック) System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived (HostedHttpRequestAsyncResult 結果) で System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest() で System.ServiceModel.Activation.HostedHttpRequestAsyncResult。 System.ServiceModel.Activation での BeginRequest()。

なんらかの不明な理由で、クリント (SL-app) が要求を適切にフラッシュしないのですか? 私は心配し始めています:(((

発信者 (SL クライアント) は、カスタム フォーム認証で認証されます。

そのままにしておくと言うかもしれませんが、これは私を夢中にさせます。何が問題なのか知りたいので、二度と遭遇しません。

ありがとう!

さようなら、チャビ

4

1 に答える 1

0

URL の問題だと思います。ほとんどの場合、URL の長さは数 kb しかありません。サイズはわかりませんが、RIA サービスでは、URL を使用してフィルターをクエリ文字列として送信します。

また、メソッドの名前も大きく、URL の上限に達しています。ビッグネームでも機能している場合、フィルター部分が空になることがありますが、フィルターをさらに追加するとエラーが発生します。

于 2011-04-25T18:28:54.050 に答える