2017-05-05 10 views
0

最近問題が発生したWebフォームアプリがあります。アプリケーションはSharePointにデプロイされます。複数のユーザーがスケジューラーにデータを入力しています。複数のユーザーとの間でページ間のパラメータを渡す

各ユーザーは異なる施設にアクセスしており、HttpRuntime.Cache["FacN"]値を使用して施設番号をユーザーに渡しています。

スケジューラフォームIでは、キャッシュされた値に非表示フィールドを設定することによって、LinqToSql接続をフィルタリングします。スケジューラーは、その施設のデータのみを表示することになっています。

(IE、SharePointサーバーで)同じ時間にデータを入力するユーザーが少なくなるまでうまくいっていました。 2人のユーザーが同時にデータを入力すると、別の施設のイベントが表示されます。

私もHttpContext.Current.Session["FacN"]を使ってみましたが、その場合は施設の価値を保持しませんでした。どのように私は施設のパラメータを渡すことができます助言してください?

+0

キャッシュはすべてのユーザー間で共有されていますが、その目的はほぼ同じです。セッションは各ユーザーに固有ですが、実際にユーザーを識別して、次の操作でセッションを取り戻す必要があります。セッションの仕組みと、それを稼働させるために必要なことを読んでください。 –

+0

ありがとうございます。私たちはSharePointを使用しており、クッキーやセッションは動作していません。私は他に何を試みるか分からない。クエリ文字列を使用するように変更しましたが、クエリ文字列を使用せずにパラメータをデフォルトページに戻す方法を見つける必要があります。 – Alla

+0

私はセッション状態が正しいアプローチだと思うので、なぜそれがあなたにとってうまくいかないのか理解しようとお勧めします。 https://msdn.microsoft.com/en-us/library/ff648090.aspxからドキュメントを読むと、いくつかの手がかりが得られるかもしれません。 –

答えて

0

ファインNでタイムスタンプ変数を追加できます。

  1. 最初のユーザーと2人目のユーザーは、タイムスタンプ付きのFacNを同時に取得します。
  2. 最初のユーザーがFacNを更新すると、タイムスタンプが変更されます。
  3. 第2のユーザがファクタNを更新したい場合、タイムスタンプを比較する必要があります。異なる場合は、更新の失敗を返します。
関連する問題