日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一般处理程序使用Session报错(未将对象引用设置到对象实例)

發布時間:2025/7/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一般处理程序使用Session报错(未将对象引用设置到对象实例) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

工作一個月了 接到一個任務

制作一個圖庫的網站 我用了一天的時間 設計了一下網站的各個功能 ?開始制作

一開始我做的是“登陸”和“注冊”

這些感覺不怎么難 我定的目標是用一天的時間完成

注冊的時候 有一個驗證碼 我先簡單的介紹一下驗證碼的原理 我們在網上見到的驗證碼基本也是這樣的原理:

1.根據要求 隨機生成一個字符串 可以是只含有數字 也可以含有數字和字母
2.創建一個Session 將生成的字符串放在創建的Session中
3.最后 在后臺中 將用戶輸入的驗證碼和Session中保存的驗證碼做比較?

如果相同 則說明用戶輸入的驗證碼正確 則 可以注冊


我用生活中的一個例子來說一下:
您可以把Session當做成一個放東西的容器 將一個物品(隨機生成的字符串)放在這個容器中
然后再拿來一個相同的物品(用戶輸入的驗證碼) 和容器中的物品比較


原理說明白了 說說我是怎么做的吧?
我在一般處理程序里面(.ashx)創建了隨機數 ,創建的隨機數的圖片 并且 創建了Session
但是在.aspx文件中使用Session的時候 犯了一個特別幼稚的錯誤


先來看一下我在一般處理程序(.ashx)里面創建Session 并給Session賦值


再來看一下在.aspx中使用Session 和 報錯信息



看到這里 也許您已經看出錯誤所在了?

對 我沒有實現 ?IRequiresSessionState ??接口

?

?

授人魚不如授人以漁 我就來說說為什么一般處理程序(.ashx)要實現這個接口 而 .aspx卻不用實現這個接口 直接拿來能用:

在.aspx文件中 微軟以及幫我實現了IRequiresSessionState ? 在Reflector反編譯器中 我們可以查看.aspx是怎么實現?IRequiresSessionState ? 接口的




而在一般處理程序里面(.ashx) 需要我們手動的實現?IRequiresSessionState ? 接口

?

在第9和第11個事件之間 有一個事件會接受瀏覽器發過來的SessionID 并根據值到服務器的Session池中找到對應的Session對象 將其引用賦值給當前頁面上的Session對象

他先嘗試將頁面類對象轉換成 IRequiresSessionState 接口 如果轉換不成功 則不加載Session對象?
如果轉換成功 則會從請求報文中拿到Cookie里的SessionID ? ? 最后在Session池中找到對應的Session對象 將引用賦值給當前頁面的Session

?


話說回來 IRequiresSessionState 到底是什么什么接口 這么重要?

呵呵 他是一個標示接口 里面什么都沒有?

知識標示了 當前頁面中使用了Session




只要實現了這個接口 在一般處理程序里面 就可以自用的使用了!!!

?

這樣的低級錯誤 以后我是再也不會犯了 希望這篇文章 能對大家有所幫助?

轉載于:https://www.cnblogs.com/alwayshere/p/4110031.html

總結

以上是生活随笔為你收集整理的一般处理程序使用Session报错(未将对象引用设置到对象实例)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。