Το μήνυμα λάθους PRB: "ζητήθηκε δεν επιτρέπεται η πρόσβαση μητρώου" όταν ASP.ΚΑΘΑΡΉ εφαρμογή προσπαθεί να γράψετε νέες Προέλευση_συμβάντος το αρχείο καταγραφής συμβάντων

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 329291 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Συμπτώματα

Όταν χρησιμοποιείτε το ASP.NET για να δημιουργήσετε μια νέα προέλευση συμβάντος στο αρχείο καταγραφής συμβάντων ενδέχεται να λάβετε το ακόλουθο μήνυμα λάθους:
System.Security.SecurityException: Πρόσβαση στο μητρώο που ζητήθηκε είναι Δεν επιτρέπεται.

Αιτία

Από προεπιλογή, το διακριτικό χρήστη από την ASP.Είναι η διαδικασία εργασίας NET ASPNET (ή NetworkService για εφαρμογές που εκτελούνται σε υπηρεσίες Internet Information Services [IIS 6.0). Το πρόβλημα με το Ενότητα "Συμπτώματα" παρουσιάζεται επειδή ο λογαριασμός σας δεν έχει σωστή χρήστη δικαιώματα για να δημιουργήσετε μια προέλευση συμβάντος.

Προτεινόμενη αντιμετώπιση

Σημαντικό Αυτή η ενότητα, μέθοδος ή εργασία περιέχει βήματα που σας καθοδηγούν να τροποποιήσετε το μητρώο. Ωστόσο, ενδέχεται να προκύψουν σοβαρά προβλήματα εάν δεν τροποποιήσετε σωστά το μητρώο. Επομένως, βεβαιωθείτε ότι ακολουθείτε προσεκτικά αυτά τα βήματα. Για επιπλέον προστασία, αντίγραφο ασφαλείας του μητρώου πριν το τροποποιήσετε. Στη συνέχεια, μπορείτε να επαναφέρετε το μητρώο εάν προκύψει κάποιο πρόβλημα. Για περισσότερες πληροφορίες σχετικά με τον τρόπο δημιουργίας αντιγράφων ασφαλείας και επαναφοράς του μητρώου, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
322756 Τρόπος δημιουργίας αντιγράφων ασφαλείας και επαναφοράς του μητρώου στα Windows
Για να επιλύσετε αυτό το πρόβλημα, ο χρήστης που έχει διαχείρισης πρέπει να δημιουργήσετε την προέλευση συμβάντων δικαιώματα πριν να εκτελέσετε το ASP.Εφαρμογή NET Web. Για να δημιουργήσετε μια προέλευση συμβάντος, χρησιμοποιήστε μία από τις ακόλουθες προσεγγίσεις.

Πρώτη προσέγγιση

Δημιουργήστε μια προέλευση συμβάντος υπό το Εφαρμογή αρχείο καταγραφής συμβάντων στον Επεξεργαστή μητρώου. Ακολουθήστε τα εξής βήματα:
  1. Κάντε κλικ στο κουμπί Έναρξη, και στη συνέχεια κάντε κλικ στο κουμπίΕκτέλεση.
  2. Με το Άνοιγμα πλαίσιο κειμένου, πληκτρολογήστεRegedit.
  3. Εντοπίστε το ακόλουθο δευτερεύον κλειδί μητρώου:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
  4. Κάντε δεξιό κλικ του Εφαρμογή δευτερεύον κλειδί, σημείο Για να Νέα, και στη συνέχεια κάντε κλικ στο κουμπί Κλειδί.
  5. Τύπος ΔΟΚΙΜΉ για το κλειδί το όνομα.
  6. Κλείστε τον Επεξεργαστή μητρώου.

Δεύτερη προσέγγιση

Το EventLogInstaller Κλάση στο χώρο ονομάτων System.Diagnostics σας επιτρέπει να εγκαταστήσετε και να ρυθμίσετε ένα αρχείο καταγραφής συμβάντων που διαβάζει από την εφαρμογή σας ή να εγγράφει ενώ εκτελείται. Μπορείτε να δημιουργήσετε μια προέλευση συμβάντος, χρησιμοποιώντας το EventLogInstaller. Για να το κάνετε αυτό, Ακολουθήστε τα εξής βήματα:
  1. Χρήση της Microsoft Visual Basic.NET ή Microsoft Visual C#.NET Για να δημιουργήσετε ένα νέο Βιβλιοθήκη κλάσεων με το όνομα EventLogSourceInstaller. Από προεπιλογή, το Class1.VB το αρχείο ή τοClass1.CS Δημιουργία αρχείου.
  2. Στην Εξερεύνηση λύση, κάντε δεξιό κλικEventLogSourceInstaller, και στη συνέχεια κάντε κλικ στο κουμπί Προσθήκη Αναφορές.
  3. Με το Προσθήκη αναφοράς στο παράθυρο διαλόγου Κάντε διπλό κλικ System.Configuration.Install.dll, και στη συνέχεια κάντε κλικ στο κουμπίOK.
  4. Class1.vb\Class1.cs για να μετονομάσετε MyEventLogInstaller.vb\MyEventLogInstaller.cs.
  5. Αντικαταστήσετε τον υπάρχοντα κωδικό MyEventLogInstaller.vb ή MyEventLogInstaller.cs με το ακόλουθο δείγμα κώδικα:

    Visual Basic .Δείγμα NET
    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
    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. Από το Δόμηση μενού, κάντε κλικ στο κουμπί Δόμηση Λύση Για να δημιουργήσετεEventLogSourceInstaller.dll.
  7. Ανοίξτε το Visual Studio.NET εντολών.
  8. Στη γραμμή εντολών, αλλάξτε το φάκελο όπουEventLogSourceInstaller.dll βρίσκεται.
  9. Εκτελέστε την ακόλουθη εντολή για να δημιουργήσετε το Προέλευση_συμβάντος:
    Το InstallUtil EventLogSourceInstaller.dll

Περισσότερες πληροφορίες

Βήματα για την αναπαραγωγή της συμπεριφοράς

  1. Χρήση της Visual Basic.NET ή Visual C#.NET για να δημιουργήσετε ένα νέοASP.Εφαρμογή NET Web. Από προεπιλογή,Αρχείο WebForm1.aspx Δημιουργία αρχείου.
  2. Σε προβολή HTML Αρχείο WebForm1.aspx, αντικατάσταση υπάρχοντα κώδικα με το ακόλουθο δείγμα κώδικα:

    Visual Basic.NET Δείγμα
    <%@ 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
    <%@ 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. Από το Ο εντοπισμός σφαλμάτων μενού, κάντε κλικ στο κουμπίΈναρξη Για να προβάλετε το Αρχείο WebForm1.aspx σελίδα με το το πρόγραμμα περιήγησης.
  4. Πληκτρολογήστε κείμενο στο Πλαίσιο κειμένου, και στη συνέχεια κάντε κλικ στο κουμπίΗ εγγραφή στο αρχείο καταγραφής συμβάντων.
  5. Το μήνυμα λάθους που περιγράφεται στην ενότητα "Συμπτώματα" εμφανίζεται η ενότητα αυτού του άρθρου.
  6. Για να επιλύσετε αυτό το ζήτημα, δημιουργήστε μια προέλευση συμβάντος ως περιγράφεται στην ενότητα "Προτεινόμενη αντιμετώπιση" και τον ακόλουθο κώδικα στο σχόλιοΑρχείο WebForm1.aspx :
    EventLog.CreateEventSource(ev.Source, "Application")
  7. Επαναλάβετε τα βήματα 3 και 4.

Αναφορές

Για περισσότερες πληροφορίες, επισκεφθείτε την ακόλουθη Web Microsoft τοποθεσίες:
.aspx http://msdn2.Microsoft.com/en-us/library/f5dcf6h3 (vs.71)
.aspx http://msdn2.Microsoft.com/en-us/library/System.Diagnostics.EventLog (vs.71)

Ιδιότητες

Αναγν. άρθρου: 329291 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft ASP.NET 1.1
Λέξεις-κλειδιά: 
kberrmsg kbwebforms kbsecurity kbprb kbmt KB329291 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:329291

Αποστολή σχολίων

 

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