คำถามติดแท็ก session-state

16
หากแอปพลิเคชัน REST ควรไร้สถานะคุณจะจัดการเซสชันได้อย่างไร
ฉันต้องการคำอธิบายบางอย่าง ฉันอ่านเกี่ยวกับ REST และสร้างแอปพลิเคชัน RESTful แล้ว ตามที่วิกิพีเดีย REST ตัวเองจะถูกกำหนดให้เป็นรัฐ Representational การถ่ายโอน ฉันไม่เข้าใจgobbledeygookไร้สัญชาติทั้งหมดนี้ที่ทุกคนคอยพ่น จากวิกิพีเดีย: ในเวลาใดก็ได้ลูกค้าสามารถอยู่ระหว่างการเปลี่ยนสถานะแอปพลิเคชันหรือ "หยุดพัก" ไคลเอนต์ในสถานะพักสามารถโต้ตอบกับผู้ใช้ แต่สร้างไม่โหลดและใช้ไม่มีการจัดเก็บต่อไคลเอนต์บนชุดของเซิร์ฟเวอร์หรือบนเครือข่าย พวกเขากำลังบอกว่าอย่าใช้แหล่งข้อมูลระดับ / แอปพลิเคชันหรือไม่ ฉันได้รับเป้าหมายอย่างหนึ่งของ REST คือทำให้ URI เข้าถึงได้อย่างสอดคล้องและพร้อมใช้งานตัวอย่างเช่นแทนที่จะซ่อนคำขอเพจไว้ในโพสต์ทำให้หมายเลขหน้าของคำขอเป็นส่วนหนึ่งของ GET URI ทำให้รู้สึกถึงฉัน แต่ดูเหมือนว่ามันกำลังเกินเหตุโดยบอกว่าไม่ควรมีการจัดเก็บข้อมูลฝั่งไคลเอ็นต์ (ข้อมูลเซสชัน) ถ้าฉันมีคิวของข้อความและผู้ใช้ของฉันต้องการอ่านข้อความ แต่เมื่อเขาอ่านพวกเขาต้องการบล็อกข้อความของผู้ส่งบางข้อความที่ผ่านมาในช่วงเวลาของเซสชันของเขา? การเก็บสิ่งนี้ไว้ในสถานที่บนฝั่งเซิร์ฟเวอร์หรือไม่และทำให้เซิร์ฟเวอร์ส่งข้อความ (หรือรหัสข้อความ) ที่ผู้ใช้ไม่ได้บล็อกเท่านั้น ฉันต้องส่งรายชื่อผู้ส่งข้อความทั้งหมดเพื่อปิดกั้นทุกครั้งที่ขอรายการข้อความใหม่หรือไม่ รายการข้อความที่เกี่ยวข้องกับฉันจะไม่ / ไม่ควรเป็นทรัพยากรสาธารณะที่มีอยู่ในสถานที่แรก .. อีกครั้งเพียงพยายามที่จะเข้าใจสิ่งนี้ มีคนโปรดอธิบาย ปรับปรุง: ฉันได้พบคำถามล้นล้นที่มีคำตอบที่ไม่ได้รับฉันไปที่นั่น: วิธีการจัดการสถานะในส่วนที่เหลือ ซึ่งบอกว่ารัฐลูกค้าที่มีความสำคัญควรทั้งหมดจะถูกโอนในทุกคำขอ .... Ugg .. ดูเหมือนว่าค่าใช้จ่ายจำนวนมาก …

10
ไม่สามารถส่งคำขอสถานะเซสชันไปยังเซิร์ฟเวอร์สถานะเซสชัน
ไซต์ของเรากำลังมีปัญหานี้ โดยทั่วไปจะเกิดขึ้นเฉพาะเมื่อเราคลิกลิงก์ใดลิงก์หนึ่งซึ่งจะปรากฏขึ้นในหน้าต่างใหม่ นี่คือข้อความแสดงข้อผิดพลาดที่เราได้รับ: ไม่สามารถส่งคำขอสถานะเซสชันไปยังเซิร์ฟเวอร์สถานะเซสชัน โปรดตรวจสอบให้แน่ใจว่าบริการสถานะ ASP.NET เริ่มทำงานและพอร์ตไคลเอนต์และเซิร์ฟเวอร์เหมือนกัน หากเซิร์ฟเวอร์อยู่บนเครื่องระยะไกลโปรดตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ยอมรับคำขอระยะไกลโดยตรวจสอบค่าของ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ aspnet_state \ Parameters \ AllowRemoteConnection หากเซิร์ฟเวอร์อยู่ในเครื่องโลคัลและหากค่ารีจิสทรีที่กล่าวถึงก่อนหน้านี้ไม่มีอยู่หรือถูกตั้งค่าเป็น 0 สตริงการเชื่อมต่อเซิร์ฟเวอร์สถานะจะต้องใช้ 'localhost' หรือ '127.0.0.1' เป็นชื่อเซิร์ฟเวอร์ ไซต์เป้าหมาย: โมฆะ MakeRequest (StateProtocolVerb, System.String, StateProtocolExclusive, Int32, Int32, Int32, ไบต์ [], Int32, Int32, SessionNDMakeRequestResults ByRef) นี่คือ webconfig ที่มีแท็ก sessionstate: <sessionState mode="StateServer" timeout="45" …

4
ใน ASP.NET ฉันควรใช้ Session.Clear () แทน Session.Abandon () เมื่อใด
ทั้ง Session.Clear () และ Session.Abandon () กำจัดตัวแปรเซสชัน ตามที่ฉันเข้าใจ Abandon () จะสิ้นสุดเซสชันปัจจุบันและทำให้เซสชันใหม่ถูกสร้างขึ้นซึ่งทำให้เหตุการณ์สิ้นสุดและเริ่มทำงาน ดูเหมือนว่าควรเรียก Abandon () เป็นส่วนใหญ่เช่นการล็อกผู้ใช้ออก มีสถานการณ์ที่ฉันใช้ Clear () แทนหรือไม่? ประสิทธิภาพแตกต่างกันมากไหม


5
ฉันสามารถเข้าถึงสถานะเซสชันจากโมดูล HTTPM ได้หรือไม่
ฉันสามารถอัปเดตตัวแปรเซสชันของผู้ใช้ได้จากภายในโมดูล HTTPM ของฉัน แต่จากสิ่งที่ฉันเห็นมันเป็นไปไม่ได้ อัปเดต:รหัสของฉันกำลังทำงานอยู่ในOnBeginRequest ()ตัวจัดการเหตุการณ์ อัปเดต:ตามคำแนะนำที่ได้รับจนถึงตอนนี้ฉันได้ลองเพิ่มสิ่งนี้ลงในInit ()รูทีนในโมดูล HTTPM ของฉัน: AddHandler context.PreRequestHandlerExecute, AddressOf OnPreRequestHandlerExecute แต่ในOnPreRequestHandlerExecuteกิจวัตรของฉันสถานะเซสชันยังไม่พร้อมใช้งาน! ขอบคุณและขออภัยหากขาดอะไรไป!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.