This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

ViewStateException الفئة

Visual Studio 2010

يمثل ‏‏ استثناء الذي يتم طرح عند عرض لا يمكن تم تحميله الالولاية أو التحقق من صحتها. و هذه الفئة لا يمكن أن تكون موروثة.

مساحة الاسم:  System.Web.UI
التجميع:  System.Web (في System.Web.dll)

[SerializableAttribute]
public sealed class ViewStateException : Exception, 
	ISerializable

إذا حدث استثناء عند تحميل الصفحة عرض-الصفحة معلومات الالولاية، ينشئ ViewStateExceptionالكائن ويمرره كاستثناء داخلي داخل HttpException‏‏ استثناء. HttpException ‏‏ استثناء هو re-تم طرح إلى أن يتم التعامل معها من قبل تطبيق.

ViewStateException فئة تخزين معلومات حول ‏‏ استثناء في Messageخاصية. إذا الطلب إذن للوصول إلى ServerVariablesخاصية، ثم Messageخاصية يحتوي على قيم التي يتم إرجاعها من RemoteAddress، RemotePort، UserAgent، PersistedState، Referer، و Pathالخصائص؛ وإلا Messageتحتوي خاصية على عام عرض-رسالة خطأ في الولاية.

يمكن أن يكون استثناء الولاية العرض نتيجة لوجود خطأ في التحقق من صحة رموز مصادقة الرسالة (MAC). إذا كانت الصفحة السمة enableViewStateMacهو تعيين إلى true، معلومات الولاية العرض هو مرمزة بواسطة معرّف MAC. عند الولاية العرض المعلومات هو التي تم نشرها إلى الملقم، الصفحة يتحقق الترميز للتأكد من أن فإنه لم يتم تغييرها من قبل مستخدم. إذا تعذر التحقق من الصفحة ترميز MAC على المعلومات الخاصة بالولاية العرض، سوف الإلقاء HttpException‏‏ استثناء مع ViewStateExceptionالكائن كـ على ‏‏ استثناء الداخلي.

للتحقق من صحة MAC نجاح، المعلومات حالة العرض يجب أن يكون hashed بنفس المفتاح عند ذلك هو المرسلة والمتلقاة. داخل مزرعة ويب، يجب تعيين المفتاح آلة تشغيل كل الخادم إلى المفتاح عام.

يوضح مثال التعليمة البرمجية التالية كيفية تنفيذ أسلوب الذي deserializes سلسلة ترميز بالأساس 64 و إرجاع ICollectionمجموعة من إعدادات الخصائص. Deserialize أسلوب يمكن أن يقوم بطرح HttpException‏‏ استثناء الذي يحتوي على ViewStateExceptionالكائن كـ على ‏‏ استثناء الداخلي. يوضح المثال كيف يمكن التقاط HttpException‏‏ استثناء واسترداد خصائص من ViewStateExceptionالكائن.


private ICollection LoadControlProperties(string serializedProperties)
{

    ICollection controlProperties = null;

    // Create an ObjectStateFormatter to deserialize the properties.
    ObjectStateFormatter formatter = new ObjectStateFormatter();

    try
    {
        // Call the Deserialize method.
        controlProperties = (ArrayList)formatter.Deserialize(serializedProperties);
    }
    catch (HttpException e)
    {
        ViewStateException vse = (ViewStateException)e.InnerException;
        String logMessage;

        logMessage = "ViewStateException. Path: " + vse.Path + Environment.NewLine;
        logMessage += "PersistedState: " + vse.PersistedState + Environment.NewLine;
        logMessage += "Referer: " + vse.Referer + Environment.NewLine;
        logMessage += "UserAgent: " + vse.UserAgent + Environment.NewLine;

        LogEvent(logMessage);

        if (vse.IsConnected)
        {
            HttpContext.Current.Response.Redirect("ErrorPage.aspx");
        }
        else
        {
            throw e;
        }
    }
    return controlProperties;
}


يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: