3

これは先週から私を狂わせており、私はまだ解決策に近づいていないので助けてください...

環境: IIS 7.5、.Net 4.0、jQuery (最新)

多数の顧客とその関係で構成される階層オブジェクトを作成するために呼び出す内部 Web サービスがあります。私の Web サービスでは、階層オブジェクトを に保存しますHttpContext.Current.Session

その直後に、私の JavaScript で、ユーザーに表示される顧客をループします。顧客ごとに、Web サービスで別のプロシージャを呼び出す $.ajax 関数を呼び出します。C# コードでは、階層オブジェクトをHttpContext.Current.Session読み取り、linq を使用して現在の顧客のデータを読み取ります。

私の問題はHttpContext.Current.Session["hierarchy"]、一部の顧客に対して null を返すことです。まったく同じ URL を呼び出していますが、毎回同じ顧客ではありません。

HttpContext.Current.Session階層オブジェクトのすべてが実際に に書き込まれていることを確認するためだけに、書き込み直後から階層を読み取ろうとしましたHttpContext.Current.Session

HttpContext.Current.Session.SessionIdセッションが同じであり、すべてが合計されることを確認するためにログを記録しようとしました。

EnableSessionStateDefault.apx の有無にかかわらず試してみました

私を正しい方向に導くことができる人に前もって感謝します...

./CJ

4

2 に答える 2

2

Web サービスは WCF で作成されていますか? その場合、asp.net 互換モードが有効になっていない限り、セッションはまったくありません。

于 2012-10-22T12:25:48.290 に答える
2

ASMX Web サービスを使用している場合 (できればそうでないことを願っています)、上記の各方法について次のことを確認してください。

[WebMethod(EnableSession = true)]

そうでなければ、XingはWCFに関して正しいです。ASP.NET セッションを手動でオンにしないと、セッションが null を返すことを経験から知っています。

于 2012-10-22T12:30:21.230 に答える