Oprava: Obdržíte chybovou zprávu "Více ovládacích prvků se stejným ID" při dynamicky přidat ovládací prvky v mezipaměti uživatele webových

Překlady článku Překlady článku
ID článku: 834608 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Dynamicky přidat ovládací prvky v mezipaměti uživatele Webform, obdržíte chybovou zprávu při procházení webové stránky je podobná následující:
Bylo nalezeno více ovládacích prvků se stejným ID '_909b6e15b33. FindControl vyžaduje ovládací prvky mají jedinečné ID.

Popis: Při provádění aktuálního webového požadavku došlo k neošetřené výjimce. Zkontrolujte trasování zásobníku Další informace o chybě a kde vznikla v kódu.

Podrobnosti o výjimce: System.Web.HttpException: bylo nalezeno více ovládacích prvků se stejným ID '_909b6e15b33. FindControl vyžaduje ovládací prvky mají jedinečné ID.
Poznámka: V této chybové zprávě je nesprávně kapitalizovány slovo "web".

Poznámka: Další informace o ovládacích prvcích výstupu do mezipaměti a uživatele naleznete v "Odkazy" v tomto článku.

Příčina

K tomuto problému dochází, protože je jedinečný název při dynamické ovládací prvky jsou vytvořeny z mezipaměti předaný funkci LoadCachedControl. Jedinečný název je určen být jedinečné ID, která je uvedena tato instance dynamicky načtené uživatelský ovládací prvek. Však používá vygenerované ID a vygenerované ID není jedinečný přes dynamicky načtené uživatelské ovládací prvky. Toto chování způsobuje potíže uvedené v tomto článku v části "Příznaky".

Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
837000Vlastnost PartialCachingControl.CachedControl vrátí vždy odkaz null

Řešení

Důležité:Tato oprava hotfix obsahuje dva typy balíčků: Instalační služba Microsoft Windows Installer balíček a balíčku správce volitelných součástí (OCM). Pokud používáte systém Windows Server 2003, je třeba zadat vyžadují aktualizaci Windows Server 2003 (OCM) protože Ochrana souborů systému Windows Server 2003 sleduje soubory .NET Framework 1.1. Pokud používáte operační systém, který je odlišný od systému Windows Server 2003, musí pokračovat použít balíček Instalační služba Windows Installer.

Informace o aktualizaci softwaru

Společnost Microsoft má nyní k dispozici podporovanou opravu hotfix, která je určena pouze k odstranění problému popsaného v tomto článku. Použijte ji pouze v systémech, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Proto pokud není použití tento problém, doporučujeme počkat další Microsoft .NET Framework 1.1 Service Pack 1, který obsahuje tuto opravu hotfix.

Potřebujete-li odstranit tento problém okamžitě, obraťte se na služby podpory společnosti Microsoft, kde můžete tuto opravu hotfix získat. Úplný seznam telefonních čísel služeb technické podpory společnosti Microsoft a informace o cenách technické podpory naleznete na tomto webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Poplatky, které je třeba obvykle zaplatit za telefonní hovory, mohou být stornovány, jestliže pracovník technické podpory společnosti Microsoft zjistí, že oznámený problém lze vyřešit konkrétní aktualizací. Další dotazy a žádosti o odbornou pomoc, které se netýkají této zvláštní opravy, podléhají běžným sazbám za poskytnutí odborné pomoci.

Požadavek na restartování

Můžete mít k restartování počítače, pokud jsou služby nebo aplikace spuštěny, které používají soubory, které jsou uvedeny v tomto článku v části "Informace o souborech".

INFORMACE O SOUBORECH

Anglická verze této aktualizace softwaru má atributy souborů (nebo novější), které jsou uvedeny v následující tabulce. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v ovládacím panelu Datum a čas.
   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

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech společnosti, které jsou uvedeny v části "Platí pro" v tomto článku.

Další informace

Postup reprodukce problému

  1. Například vytvořit webovou složku, vytvořte složku \inetpub\wwwrooot\PageCaching.
  2. Vytvořit uživatelský ovládací prvek s názvem Test1.ascx použít následující kód a potom uložte do webové složky vytvořené v kroku 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. Vytvořit uživatelský ovládací prvek s názvem Test2.ascx použít následující kód a potom uložte do webové složky vytvořené v kroku 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. Procházet http://localhost/PageCaching/PageCaching.aspx. Zobrazit chybová zpráva popsaná v tomto článku v části "Příznaky".
Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Pomocí třídy PartialCachingControl

Třída PartialCachingControlnastaveno CacheControl vlastnost. Vlastnost nastaveno CacheControl lze určit, pokud uživatelský ovládací prvek má již byla mezipaměti. Pouze při výstupu výstup ovládací prvek uživatele není uložena v mezipaměti, vrátí vlastnost nastaveno CacheControl uživatelský ovládací prvek. Pokud výstup uživatelský ovládací prvek existuje ve výstupní mezipaměti, vrátí vlastnost nastaveno CacheControl null odkaz, protože ovládací prvek nikdy instance (v aplikaci Microsoft Visual Basic vlastnost nastaveno CacheControl vrátí Nothing). Však nastaveno CacheControl vždy vrátí vlastnost NEPRAVDA Pokud třída PartialCachingControl není ovládacího prvku stromu.

Odkazy

Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
306459Přehled ovládacích prvků serveru ASP.NET
308378Jak provést fragmentu mezipaměti ASP.NET pomocí Visual C# .NET
308645Jak provést fragmentu mezipaměti ASP.NET pomocí jazyka .NET

Vlastnosti

ID článku: 834608 - Poslední aktualizace: 7. dubna 2006 - Revize: 4.2
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbqfe kbhotfixserver kbfix kbnetframe110presp1fix kbcodegen kbcode kbbug KB834608 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:834608

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com