IIS 7.5 で RIA サービスを使用して Silverlight アプリケーションを実行していますが、「クエリ 'xxx' の読み込み操作が失敗しました。操作 'xxx' へのアクセスが拒否されました。」これは、情報メッセージ "" とともにイベント ビューアに表示されます (このメッセージは現在、イベント ログを制限するために抑制されています)。
フローは次のとおりです。ユーザーは最初にログインし、フォーム認証を使用して認証され、有効期限はスライド有効期限を使用して 12 時間に設定されます。すべての RIA ドメイン サービス クラスは [RequiresAuthentication] でマークされています。
私は ASP.NET とフォーム認証にあまり詳しくありませんが、最初に考えたのは、ユーザー セッションが期限切れになったということでした。そのため、DomainOperationExceptions を Unauthorized のステータス コード (401 エラーに対応) で処理して修正し、ユーザーを次のように更新しようとしました。
private void OnLoadComplete(LoadResult<MyObject> res)
{
if (res.Error != null)
{
var dom = res.Error as DomainOperationException;
if (dom != null && dom.Status == OperationErrorStatus.Unauthorized)
{
WebContext.Current.HttpAuthentication.LoadUser();
}
}
}
残念ながら、これは実際には何の違いもありませんでした。
それは実際にはセッションの有効期限ですか、それともこのエラーを引き起こす可能性のある何か他のものがありますか? そして、それを処理する正しい方法は何ですか?
問題を診断するために他に何が必要か教えてください...