Αυτήν τη στιγμή είστε εκτός σύνδεσης, σε αναμονή για επανασύνδεση στο Internet
Είσοδος

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

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.

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.DiagnosticsImports System.Configuration.InstallImports 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 τοποθεσίες:

Προειδοποίηση: Αυτό το άρθρο είναι μεταφρασμένο αυτόματα

Ιδιότητες

Αναγνωριστικό άρθρου: 329291 - Τελευταία αναθεώρηση: 05/29/2011 15:57:00 - Αναθεώρηση: 4.0

  • Microsoft ASP.NET 1.1
  • kberrmsg kbwebforms kbsecurity kbprb kbmt KB329291 KbMtel
Σχόλια