5

私はasp.net Webサイトを開発しています。

  • 2 人の異なるユーザーが異なるセッションでその Web サイトにアクセスすると、1 人のユーザーのコンテンツが別のユーザーにスワップされます。
  • 私は javacsript を使用しており、.aspx ページから pagemethods を呼び出し、コード ビハインドで C# を呼び出しています。
  • この問題は主に、2 人のユーザーが同時に同じ機能を呼び出している場合に発生します。
  • 静的変数がこの問題を引き起こす可能性があると考え、pagemethod が静的であることが必須である pagemethod 関数を除いて、静的変数または静的関数を使用しないようにしました。

この問題で私を助けてください。

4

7 に答える 7

1

リクエストに応答するために使用する静的変数と静的メソッドを削除します。

于 2013-09-17T04:02:06.583 に答える
1

セッション状態の構成を確認してください (以下の例を参照してください)。おそらく、「InProc」以外のモードを使用していて、それでいくつかの問題が発生している可能性があります。

<sessionState mode="InProc" cookieless="false" timeout="60" />

SessionID をプレフィックスとして使用するキーでインスタンスをキャッシュすることを検討することもできます。エンタープライズ ライブラリは、優れたキャッシュの実装を提供します。

お役に立てれば。

于 2013-09-16T15:51:04.700 に答える
1

sessionStateweb.configに追加します。

<configuration>
  <system.web>
   <sessionState timeout="120" mode=" [InProc|StateServer|SQLServer|Custom]" cookieless="false"  />
  </system.web>
</configuration>

次の解決策も試してください。

  1. スタート>管理ツール>サービス
  2. ASP.NET State Service を右クリックし、[開始] をクリックします。

@TombMedia's Answerに記載されているように、変数もロックする必要があります。

このリンクが役立つ場合があります: ASP.NET でのセッションの探索

于 2013-09-17T08:18:35.170 に答える
1
  • Windows サービスで aspnet 状態サービスをオンにします。
  • Static x の代わりに session["x"] を使用する
  • ページ レベルの値に viewstate["x"] を使用する
于 2013-09-16T15:05:53.370 に答える
0

これは Web.config で設定され、 <%@ outputcache duration="1" varybyparam="none" %> これはすべての .aspx フォームから削除されます。

よろしく Rs

于 2014-09-15T07:05:15.820 に答える