الدورة دولة ليست الإبقاء على المكالمات إلى صفحة طريقة

StackOverflow https://stackoverflow.com/questions/1210155

سؤال

بلدي برمجية من جانب الخادم:

    [WebMethod(CacheDuration = 0, EnableSession = true)]
    public static int UserID()
    {
        if (HttpContext.Current.Session["UserID"] == null) return 0;
        int UserID = Convert.ToInt32(HttpContext.Current.Session["UserID"]);
        return (UserID);

    }

موكلي الجانب كود:

$.ajax({
    type: "POST", cache: false,
    url: "Login.aspx/UserID",
    data: "{'r':" + rnd() + "}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
        alert(msg);
    }
});

هذه رموز يعمل بشكل جيد على المضيف المحلي.و "معرف المستخدم" اياكس الاتصال, العودة حق قيمة الدورة المعلمة.

ولكن عندما كنت في محاولة لتحميل موقع الويب الخاص بي على الملقم "معرف المستخدم" اياكس الاتصال دوما بإرجاع خطأ!!

الخادم هو asp.net 2.0 و أنا باستخدام مسج 1.3.2

لذا يرجى المساعدة في حل هذه المشكلة.

هل كانت مفيدة؟

المحلول

قراءة هذا المقال: ASP.NET حالة جلسة أسئلة وأجوبة لقد وجدت الإجابة على هذه الأسئلة:

  1. Q:دورة الولايات يعمل على بعض ملقمات ويب ولكن ليس على الآخرين.A:ربما اسم الجهاز المشكلة.انظر http://support.microsoft.com/default.aspx?scid=kb EN-US;q316112 .
  2. Q:لماذا هي متغيرات جلسة فقدت في كثير من الأحيان عند استخدام InProc الوضع ؟ A:ربما بسبب تطبيق سلة المحذوفات.انظر http://support.microsoft.com/default.aspx?scid=kb en-us;Q316148

تغيير sessionState وضع "StateServer" حل المشكلة.استخدام التعليمات البرمجية أدناه:

<sessionState mode="StateServer"
  stateConnectionString="tcpip=localhost:42424"
  cookieless="false"
  timeout="999"/>

نصائح أخرى

وهناك عدد قليل من الأشياء للتحقق:

هل تستخدم التكوين WebFarm؟ قد تكون هناك مشكلة عند استخدام جلسة في التكوين WebFarm.

هل تحقق حركة مرور الشبكة باستخدام أدوات مثل عازف الكمان أو مصاب بهوس الاحراق؟ وASP.NET مصادقة الكعكة أرسلت خلال مكالمة AJAX؟

وأيمكنك تأكيد جلستك فار صالحا؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top