- PR -

実例で学ぶASP.NETプログラミングにおいて

投稿者投稿内容
未記入
会議室デビュー日: 2004/08/12
投稿数: 5
投稿日時: 2004-08-12 16:27
お世話になります。この連載を読みながらASP.NETを勉強しているものです。
この中で、どうしても買い物かごに複数件データが表示されません。
Session("Sbview")のCOUNTの状況を確認しているのですが、
PRODETのかごの中へ処理時にかならず
Addnew前 0件からAddnew後1件
の推移となってしまいます。
どこかでSession("Sbview")がクリアされているということなのでしょうか?
どのようにすればよろしいのでしょうか?
よろしくお願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-12 17:10
 1回目か2回目に前提条件があったと思いますが、それらは満足していますか?


 あと、サーバ側のセッション状態を、どこに保存していますか?インプロセスで、サーバのメモリが少ない場合、短時間でセッションが切られる(プロセスが再起動する)ことが考えられます。
 この事例については、タスクマネージャで、aspnet_wpのメモリ使用量を監視してください。
未記入
会議室デビュー日: 2004/08/12
投稿数: 5
投稿日時: 2004-08-13 11:15
Jittaさまご返答ありがとうございます。

サーバー側のセッション状態の保存の件ですが、インプロセスです。
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
このように設定されておりました。
タスクマネージャで、aspnet_wpのメモリ使用量を監視して何度も実行しましたが、
再起動している様子はありませんでした。(監視方法が違っているのかも・・と)

再度、本連載の読み直し、開発環境の設定等を調査してみます。
何か助言等ありましたらよろしくお願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-15 12:49
 実際の業務では、インプロセスでは脆いと思われます。その辺は、あらかじめ徹底的に検証してください。


 セッションに格納している変数は、どのようになっていますか。また、どのように格納していますか。セッションに1つしか入らないような作りになっては、いないですよね?
未記入
会議室デビュー日: 2004/08/12
投稿数: 5
投稿日時: 2004-08-18 15:22
お世話になります。その後いろいろと調べてはみたのですが、正直何がどう悪いのか分からなくお手上げ状態です。

現象は、
 今選択した商品情報のみ表示されている状態です。
 買い物かご一覧は 1件のみ表示されます。

コードは連載の通り記入してあります。
(1)grobal.aspx Session_Start
Dim USET As New UMSET
Dim UVIEW As New DataView

UVIEW.Table = USET.Tables("売上明細")
Session("Sbview") = UVIEW

(2)買い物がごにいれるPRODET.aspz BASIN_CLICK

Dim drv As DataRowView = Session("Sbview").AddNew()

drv.BeginEdit()
drv("商品ID") = cpd.ID
drv("商品名") = cpd.銘柄
drv("種類") = cad.酒種
drv("容量") = urow.容量
drv("単価") = urow.小売価格
drv("注文数") = 1
drv("金額") = urow.小売価格
drv.EndEdit()

 
この表示している1件を削除しようとしても削除するデータがないと
エラーが発生してしまう状態です。
#Session("Sbview")のCount値を確認すると0になっています。


よろしくお願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-18 15:40
まず、

  1. セッション情報に正しく(複数件)格納されているか
  2. セッション情報がアクセスごとに新規作成されていないか

を、確認しましょう。
未記入
会議室デビュー日: 2004/08/12
投稿数: 5
投稿日時: 2004-08-19 13:28
Jitta様 お世話になります。

確認しました。
各ページに移動するたびに、Session_Startロジックを実行しているようです。
これが原因ですよね?
簡単なサンプル(Aフォームのボタンを押してBフォームを表示させる)でテストした場合は、起動時1回のみ実行されていました。
なぜそのような動作を起こすのか?について調べたいと思います。
なにがご助言ありましたらよろしくお願いいたします。



小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2004-08-19 14:25
クライアント側がクッキーを受け入れない設定になってたり
しないですか?

スキルアップ/キャリアアップ(JOB@IT)