PRB: "dožádaným, není povolen přístup k registru" chybová zpráva při ASP.NET aplikace se pokusí zapsat nový atribut EventSource v protokolu událostí

Překlady článku Překlady článku
ID článku: 329291 - 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

Při použití prostředí ASP.NET pro vytvoření nového zdroje událostí v protokolu událostí, může se zobrazit následující chybová zpráva:
System.Security.SecurityException: Je požadovaný přístup k registru není povoleno.

Příčina

Ve výchozím nastavení token uživatele prostředí ASP.Je čistý pracovní proces ASPNET (nebo NetworkService pro aplikace, které pracují na Internetová informační služba [IIS] 6.0). Problém v "Příznaky" dochází, protože váš účet nemá správný uživatelů práva k vytvoření zdroje událostí.

Řešení

Důležité Tento oddíl, metoda nebo úkol obsahuje kroky, které informace o úpravě registru. Však mohou nastat závažné problémy při nesprávných úpravách registru. Proto se ujistěte, opatrně postupujte takto. Pro zvýšení ochrany před úpravami je nutné zálohujte registr. Můžete pak obnovení registru v případě, že dojde k potížím. Další informace o zálohování a obnovení registru získáte článku znalostní báze Microsoft Knowledge Base:
322756 Postup při zálohování a obnovení registru v systému Windows
K vyřešení tohoto problému uživateli s oprávněním pro správu Před spuštěním ASP, musíte vytvořit práva zdroj události.Aplikace pro síť WWW. Chcete-li vytvořit zdroj události, použijte jednu z následujících přístupů.

První přístup

Zdroj události v části Vytvoření Aplikace v Editoru registru protokolu událostí. Chcete-li to provést, postupujte takto:
  1. Klepněte na tlačítko Spustita klepněte na tlačítkoSpustit.
  2. V Otevřít typ textového poleregedit.
  3. Vyhledejte následující podklíč registru:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
  4. Klepněte pravým tlačítkem myši Aplikace podklíč, bod k Novýa klepněte na tlačítko Klíč.
  5. Typ TEST klíče název.
  6. Ukončete Editor registru.

Druhý přístup

Na EventLogInstaller třídy v oboru názvů System.Diagnostics umožňuje instalovat a konfigurace protokolu událostí aplikace čte z nebo zapisuje do while systémem. Zdroj události můžete vytvořit pomocí EventLogInstaller. K tomu, postupujte takto:
  1. Pomocí jazyka Microsoft Visual Basic.NET nebo Microsoft Visual C#.NET pro vytvoření nového Knihovna tříd s názvem EventLogSourceInstaller. Standardně Class1.VB soubor neboModulu Class1.cs soubor je vytvořen.
  2. V aplikaci Solution Explorer klepněte pravým tlačítkem myšiEventLogSourceInstallera klepněte na tlačítko Přidat Odkazy.
  3. V Přidat odkaz Dialogové okno Poklepejte na položku System.Configuration.Install.dlla klepněte na tlačítkoOK.
  4. Přejmenování Class1.vb\Class1.cs na MyEventLogInstaller.vb\MyEventLogInstaller.cs.
  5. Nahraďte existující kód v MyEventLogInstaller.vb nebo MyEventLogInstaller.cs s následujícím ukázkovém kódu:

    Visual Basic .NET vzorku
    Imports System.Diagnostics
    Imports System.Configuration.Install
    Imports System.ComponentModel
    
    <RunInstaller(True)> _
    Public Class MyEventLogInstaller
        Inherits Installer
        Private myEventLogInstaller As EventLogInstaller
    
        Public Sub New()
            ' Create an instance of 'EventLogInstaller'.
            myEventLogInstaller = New EventLogInstaller()
            ' Set the 'Source' of the event log, to be created.
            myEventLogInstaller.Source = "TEST"
            ' Set the 'Log' that the source is created in.
            myEventLogInstaller.Log = "Application"
            ' Add myEventLogInstaller to 'InstallerCollection'.
            Installers.Add(myEventLogInstaller)
        End Sub 
    End Class 
    
    Visual C#.NET vzorku
    using System;
    using System.Diagnostics;
    using System.ComponentModel;
    using System.Configuration.Install;
    
    
    namespace EventLogSourceInstaller 
    {
    	[RunInstaller(true)]
    	public class MyEventLogInstaller : Installer
    	{
    		private EventLogInstaller myEventLogInstaller;
    
    		public MyEventLogInstaller()
    		{
    			//Create Instance of EventLogInstaller
    			myEventLogInstaller = new EventLogInstaller();
    
    			// Set the Source of Event Log, to be created.
    			myEventLogInstaller.Source = "TEST";
    
    			// Set the Log that source is created in
    			myEventLogInstaller.Log = "Application";
    			
    			// Add myEventLogInstaller to the Installers Collection.
    			Installers.Add(myEventLogInstaller);
    		}
    	}
    }
    
    
  6. V Sestavení nabídky, klepněte na tlačítko Sestavení Řešení vytvořitEventLogSourceInstaller.dll.
  7. Otevřete aplikaci Visual Studio.NET příkazového řádku.
  8. Na příkazovém řádku přejděte do složky kdeEventLogSourceInstaller.dll je umístěn.
  9. Následujícím příkazem Vytvořit atribut EventSource:
    InstallUtil EventLogSourceInstaller.dll

Další informace

Kroky pro reprodukci tohoto chování

  1. Pomocí jazyka Visual Basic.NET nebo Visual C#.NET pro vytvoření novéhoPROSTŘEDÍ ASP.NET webové aplikace. Ve výchozím nastavení,WebForm1.aspx soubor je vytvořen.
  2. V zobrazení HTML WebForm1.aspx, nahradit existující kód následující ukázkový kód:

    Visual Basic.NET Vzorek
    <%@ Page Language="vb" AutoEventWireup="true" %>
    <%@ Import namespace="System.Diagnostics" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    	<script language="VB" runat="server">
    	Sub WriteEvent_Click(Src As Object, e As EventArgs)
    	Dim ev As New EventLog("Application")
    	' Event's Source name
    	ev.Source = "TEST" 
    	
    	EventLog.CreateEventSource(ev.Source, "Application")
    	
    Try
    	 ev.WriteEntry(TextBox1.Text)
    	Catch b as exception
    	 Response.write ("WriteEntry " & b.message & "<br>")
    	End Try
    	ev = Nothing
    	End Sub
    	</script>
    
    	<body>
    		<form id="Form1" runat="server">
    			Event message: 
    			<asp:textbox id="TextBox1" runat="server" Width="233px"></asp:textbox>
    			<asp:button id="Button1" onclick="WriteEvent_Click" runat="server" NAME="Button1" text="Write to event log"></asp:button>
    		</form>
    	</body>
    </HTML>
    
    Visual C#.NET vzorku
    <%@ Page Language="c#" AutoEventWireup="true" %>
    <%@ Import namespace="System.Diagnostics" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    	<script language="C#" runat="server">
    	void WriteEvent_Click(Object Src, EventArgs e)
    	{
    	EventLog ev = new EventLog("Application");
    	// Event's Source name
    	ev.Source = "TEST";  
    	
    	EventLog.CreateEventSource(ev.Source, "Application");
    
    			try
    			{
    				ev.WriteEntry(TextBox1.Text);
    			}
    			catch (Exception b)
    			{
    				Response.Write("WriteEntry " + b.Message + "<br>");
    			}
    			ev = null;
    	}
    	</script>
    
    	<body>
    		<form id="Form1" runat="server">
    			Event message: 
    			<asp:textbox id="TextBox1" runat="server" Width="233px"></asp:textbox>
    			<asp:button id="Button1" onclick="WriteEvent_Click" runat="server" NAME="Button1" text="Write to event log"></asp:button>
    		</form>
    	</body>
    </HTML>
  3. V Ladění nabídky, klepněte na tlačítkoSpustit zobrazení WebForm1.aspx stránky v prohlížeč.
  4. Zadejte text v Textové polea klepněte na tlačítkoZápis do protokolu událostí.
  5. Chybové zprávy, která je popsána v části "příznaky" část tohoto článku se zobrazí.
  6. Chcete-li tento problém vyřešit, vytvořte zdroj události jako popsáno v části "Řešení" a komentář v následujícím kódemWebForm1.aspx :
    EventLog.CreateEventSource(ev.Source, "Application")
  7. Opakujte kroky 3 a 4.

Odkazy

Další informace navštivte následující Web společnosti Microsoft weby:
http://msdn2.microsoft.com/en-us/library/f5dcf6h3 (vs.71) .aspx
http://msdn2.microsoft.com/en-us/library/System.Diagnostics.EventLog (vs.71) .aspx

Vlastnosti

ID článku: 329291 - Poslední aktualizace: 19. května 2011 - Revize: 4.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Internet Information Services 6.0
Klíčová slova: 
kberrmsg kbwebforms kbsecurity kbprb kbmt KB329291 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:329291

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