أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

FIX: يمكنك تلقي "عناصر تحكم متعددة مع نفس" رسالة خطأ عند إضافة عناصر تحكم المستخدم المخزنة مؤقتاً بشكل حيوي إلى Webforms

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية834608
الأعراض
عند إضافة عناصر تحكم المستخدم المخزنة مؤقتاً بشكل حيوي إلى Webform تتلقى رسالة خطأ مشابهة لما يلي عند استعراض صفحة ويب:
تم العثور على عناصر تحكم متعددة له نفس المعرف '_909b6e15b33'. FindControl يتطلب أن تحتوي عناصر التحكم على معرفات فريدة.

وصف: حدث استثناء غير معالج أثناء تنفيذ طلب ويب الحالي. الرجاء مراجعة تتبع المكدس للحصول على مزيد من المعلومات حول الخطأ ومكان حدوثه في التعليمات البرمجية.

تفاصيل الاستثناء: System.Web.HttpException: تم العثور على عناصر تحكم متعددة له نفس المعرف '_909b6e15b33'. FindControl يتطلب أن تحتوي عناصر التحكم على معرفات فريدة.
ملاحظة يتم مكتوبةً الكلمة "ويب" بشكل غير صحيح في رسالة الخطأ هذه.

ملاحظة لمزيد من المعلومات حول التخزين المؤقت الإخراج وعناصر المستخدم راجع قسم "المراجع" من هذه المقالة.
السبب
تحدث هذه المشكلة نظرًا لأن اسم فريد يتم تمريره إلى الدالة LoadCachedControl عند إنشاء عناصر التحكم الحيوية من ذاكرة التخزين المؤقت. يهدف هذا الاسم فريد أن يكون المعرف الفريد الذي يتم إعطاء هذا المثيل من عنصر تحكم المستخدم تحميلها بشكل حيوي. ومع ذلك، يتم استخدام معرّف الذي تم إنشاؤه و المعرف الذي تم إنشاؤه ليس فريداً عبر عناصر التحكم المستخدم تحميلها بشكل حيوي. يؤدي هذا السلوك المشكلة المذكورة في قسم "الأعراض" من هذه المقالة.

للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
837000الخاصية PartialCachingControl.CachedControl دوماً بإرجاع مرجع فارغة
الحل
هاميحتوي هذا الإصلاح العاجل نوعين من حزم: حزمة مثبت Windows Microsoft و حزمة إدارة المكونات الاختيارية (OCM). إذا كنت تستخدم Windows Server 2003, يجب تحديد تتطلب تحديث Windows Server 2003 (OCM) بسبب حماية ملفات Windows Server 2003 بمراقبة ملفات .NET Framework 1.1. إذا كنت تستخدم نظام تشغيل مختلف من Windows Server 2003 يجب متابعة استخدام حزمة Windows Installer.

معلومات تحديث البرامج

يتوفر الآن إصلاح جديد معتمد من Microsoft ولكن الغرض منه هو حل المشكلة الموضحة في هذه المقالة فقط. فقط تطبيقه على الأنظمة التي تواجه هذه المشكلة بالتحديد. قد يتم إجراء اختبارات إضافية على هذا الإصلاح العاجل. ولذلك، إذا لم يكن تأثير هذه المشكلة كبيرًا، نوصي بالانتظار حتى الإصدار التالي Microsoft .NET Framework 1.1 Service Pack 1 الذي يحتوي على هذا الإصلاح العاجل.

لحل هذه المشكلة فورًا، اتصل بخدمات دعم المنتجات في Microsoft "للحصول على الإصلاح العاجل. للحصول على قائمة كاملة بأرقام الهاتف الخاصة بخدمات دعم منتج Microsoft وعلى معلومات حول تكاليف الدعم، قم بزيارة موقع Microsoft التالي على الويب:ملاحظة في بعض الحالات، قد يتم إلغاء المصروفات التي تُحتسب عادةً على مكالمات الدعم إذا قرر إخصائي الدعم لدى Microsoft أن تحديثًا معينًا سوف يعمل على حل المشكلة. سيتم تطبيق تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشكلات التي لا يعمل على حلها هذا التحديث.

متطلب إعادة تشغيل

قد تضطر إلى إعادة تشغيل الكمبيوتر إذا كان أي خدمات أو تطبيقات قيد التشغيل التي تستخدم الملفات المسردة في قسم "معلومات الملف" في هذه المقالة.

معلومات الملف

إصدار اللغة الإنجليزية من تحديث البرامج هذا سمات الملف (أو الأحدث) المسرودة في الجدول التالي. يتم سرد التواريخ والأوقات الخاصة بهذه الملفات بالتوقيت العالمي coordinated (UTC). عندما تقوم بعرض معلومات الملف، يتم تحويلها إلى التوقيت المحلي. لمعرفة الفرق بين التوقيت العالمي (UTC) والتوقيت المحلي، استخدم علامة التبويب المنطقة الزمنية في أداة التاريخ والوقت في "لوحة التحكم".
   Date         Time   Version            Size    File name   --------------------------------------------------------------   04-Feb-2004  04:14  1.1.4322.996      258,048  Aspnet_isapi.dll     04-Feb-2004  04:14  1.1.4322.996       20,480  Aspnet_regiis.exe     04-Feb-2004  04:14  1.1.4322.996       32,768  Aspnet_state.exe     04-Feb-2004  04:14  1.1.4322.996       32,768  Aspnet_wp.exe       16-May-2003  00:49                     33,522  Installpersistsqlstate.sql   16-May-2003  00:49                     34,150  Installsqlstate.sql   04-Feb-2004  04:05  1.1.4322.996       94,208  Perfcounter.dll     04-Feb-2004  04:10                      8,571  Smartnav.js   05-Feb-2004  05:11  1.1.4322.996    1,220,608  System.dll          05-Feb-2004  05:11  1.1.4322.996      241,664  System.messaging.dll     05-Feb-2004  05:11  1.1.4322.996      323,584  System.runtime.remoting.dll     05-Feb-2004  05:11  1.1.4322.996      131,072  System.runtime.serialization.formatters.soap.dll     05-Feb-2004  05:11  1.1.4322.996    1,257,472  System.web.dll      05-Feb-2004  05:11  1.1.4322.996      819,200  System.web.mobile.dll     05-Feb-2004  05:11  1.1.4322.996      569,344  System.web.services.dll     05-Feb-2004  05:11  1.1.4322.996    1,339,392  System.xml.dll      04-Feb-2004  04:10                     14,482  Webuivalidation.js
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "تنطبق على" من هذه المقالة.
معلومات أخرى

خطوات إعادة إنشاء المشكلة

  1. إنشاء مجلد ويب على سبيل المثال قم بإنشاء مجلد \inetpub\wwwrooot\PageCaching.
  2. استخدام التعليمات البرمجية التالية إلى إنشاء عنصر تحكم مستخدم يسمى Test1.ascx ومن ثم حفظه إلى مجلد ويب تم إنشاؤه في الخطوة 1:
    <%@ OutputCache Duration="60" VaryByParam="none" %><%@ Control Language="c#" "%><asp:Label id="lblTest1" runat="server">Test 1 Control</asp:Label>&nbsp;<asp:Label id="lblDynamic" runat="server">Dynamic</asp:Label>
  3. استخدام التعليمات البرمجية التالية إلى إنشاء عنصر تحكم مستخدم يسمى Test2.ascx ومن ثم حفظه إلى مجلد ويب تم إنشاؤه في الخطوة 1:
    <%@ OutputCache Duration="60" VaryByParam="none" %><%@ Control Language="c#" "%><asp:Label id="lblTest1" runat="server">Test 2 Control</asp:Label>&nbsp;<asp:Label id="lblDynamic" runat="server">Dynamic</asp:Label>
  4. Use the following code to create a Web form that is named PageCaching.aspx, and then save it to the Web folder that was created in step 1:
    <script runat=server>    void Page_Init(Object sender, EventArgs ev)    {			Control Pane = Page.FindControl("uc1");			Control Item = (Control) LoadCachedControl("test1.ascx", "Dynamic1a");			Pane.Controls.Add(Item);			Pane = Page.FindControl("uc2");			Item = (Control) LoadCachedControl("test2.ascx", "Dynamic2a");			Pane.Controls.Add(Item);			Pane = Page.FindControl("uc3");    }public PartialCachingControl LoadCachedControl(string r_ControlName, string r_ControlID){			PartialCachingControl Control = (PartialCachingControl) Page.LoadControl(r_ControlName);			Control.ID = r_ControlID;			return Control;}			                                                </script><%@ Page language="c#" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML>	<HEAD>		<title>WebForm1</title>		<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">		<meta name="CODE_LANGUAGE" Content="C#">		<meta name="vs_defaultClientScript" content="JavaScript">		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">	</HEAD>	<body>		<form id="Form1" method="post" runat="server">			<table>				<tr>					<td id="uc1" runat="server"></td>				</tr>				<tr>					<td id="uc2" runat="server"></td>				</tr>				<tr>					<td id="uc3" runat="server"></td>				</tr>			</table>		</form>	</body></HTML>
  5. استعرض للوصول إلى http://localhost/PageCaching/PageCaching.aspx. تظهر رسالة الخطأ الموضحة في قسم "الأعراض" من هذه المقالة.
للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
824684وصف للمصطلحات القياسية المستخدمة في وصف تحديثات برامج Microsoft

باستخدام فئة PartialCachingControl

تحتوي فئة PartialCachingControl خاصية CacheControl. يمكن استخدام الخاصية CacheControl لتحديد ما إذا كان عنصر تحكم مستخدم قد تم مؤقتاً. إرجاع خاصية CacheControl عنصر تحكم المستخدم فقط عندما لم يتم إجراء تخزين مؤقت الإخراج الإخراج عنصر تحكم المستخدم. إذا لم يكن الإخراج عنصر تحكم المستخدم في ذاكرة التخزين المؤقتة لإخراج الخاصية CacheControl بإرجاع مرجع فارغ لأن عنصر التحكم لا يمكن إنشاء مثيل من (في Microsoft Visual Basic الخاصية CacheControl إرجاع شيء). ومع ذلك، الخاصية CacheControl دوماً بإرجاع FALSE إذا لم تكن الفئة PartialCachingControl في شجرة وحدة التحكم.
مراجع
للحصول على معلومات إضافية، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة المعارف لـ Microsoft:
306459نظرة عامة حول عناصر تحكم الملقم ASP.NET
308378كيفية إجراء التخزين المؤقت الجزء في ASP.NET باستخدام Visual C# .NET
308645كيفية إجراء التخزين المؤقت الجزء في ASP.NET باستخدام Visual Basic .NET

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 834608 - آخر مراجعة: 04/07/2006 07:05:38 - المراجعة: 4.2

Microsoft .NET Framework 1.1, Microsoft Visual Studio .NET 2003 Professional Edition, Microsoft Visual Studio .NET 2003 Enterprise Developer, Microsoft Visual Studio .NET 2003 Enterprise Architect, Microsoft ASP.NET 1.1

  • kbmt kbqfe kbhotfixserver kbfix kbnetframe110presp1fix kbcodegen kbcode kbbug KB834608 KbMtar
تعليقات
c1.microsoft.com/c.gif?DI=4050&did=1&t=">/html>html>;t=">/html>/html>body>&t=">