SORUN: ASP.NET uygulamasının yeni OlayKaynağı olay günlüğüne Yaz açmaya çalıştığında "İstenen kayıt defteri erişim verilmiyor" hata iletisi

Makale çevirileri Makale çevirileri
Makale numarası: 329291 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

ASP.NET olay günlüğünde yeni bir olay kaynağı oluşturmak için kullandığınızda, aşağıdaki hata iletisini alabilirsiniz:
: System.Security.SecurityException İstenen kayıt defteri erişimi izin verilmiyor.

Neden

Varsayılan olarak, kullanıcı simgesi, ASP.NET alt işlemi ASPNET (veya ınternet ınformation Services [IIS] 6. 0'da çalışan uygulamalar için NetworkService) var. Sorun "Belirtiler" bölümünde, hesabınızı bir olay kaynağı oluşturmak için doğru kullanıcı haklarına sahip olmadığı için oluşur.

Çözüm

Önemli Bu bölüm, yöntem veya görev kayıt defterini nasıl söyleyin adımları içerir. Ancak kayıt defterini hatalı olarak değiştirirseniz önemli sorunlar oluşabilir. Bu nedenle, bu adımları dikkatlice uyguladığınızdan emin olun. Ek koruma için, kayıt defterini değiştirmeden önce yedeklemeyi unutmayın. Bir sorun oluşursa kayıt defterini daha sonra geri yükleyebilirsiniz. Kayıt defterini yedekleme ve geri yükleme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
322756Windows'da kayıt defterini yedekleme ve geri yükleme
Yönetici haklarına sahip bir kullanıcı bu sorunu gidermek için <a0></a0>, ASP.NET Web uygulamasını çalıştırmak için önce olay kaynağı oluşturmanız gerekir. Bir olay kaynağı oluşturmak için aşağıdaki yaklaşımlardan birini kullanın.

Ilk yaklaşımı

Kayıt Defteri Düzenleyicisi'nde altında Uygulama olay günlüğüne bir olay kaynağı yarat Bunu yapmak için şu adımları izleyin:
  1. Başlat ' ı tıklatın ve sonra da <a2>Çalıştır</a2>'ı tıklatın.
  2. metin kutusuna regedit yazın.
  3. Aşağıdaki kayıt defteri alt anahtarını bulun:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
  4. Uygulama alt anahtarını sağ tıklatın, Yeni ' nin üzerine gelin ve anahtar ' ı tıklatın.
  5. Anahtar adı için TEST türü.
  6. Kayıt Defteri Düzenleyicisi'ni kapatın.

Ikinci bir yaklaşımı

System.Diagnostics ad EventLogInstaller sınıfında yüklemek ve uygulama alanından okur veya çalışan çalışırken yazar olay günlüğünü yapılandırmak için izin verir. Bir olay kaynağı, EventLogInstaller kullanarak oluşturabilirsiniz. Bunu yapmak için şu adımları izleyin:
  1. Microsoft Visual Basic .NET veya Microsoft Visual C# .NET EventLogSourceInstaller adlı yeni bir Sınıf kitaplığı oluşturmak için kullanın. Varsayılan olarak, Class1.vb dosyası veya Class1.cs dosyası oluşturulur.
  2. Solution Explorer'da (Çözüm Gezgini), EventLogSourceInstaller ' ı sağ tıklatın ve Başvuru Ekle</a1>'ı tıklatın.
  3. Başvuru Ekle) iletişim kutusunda, System.Configuration.Install.dll çift tıklatın ve sonra Tamam ' ı tıklatın.
  4. Class1.vb\Class1.cs MyEventLogInstaller.vb\MyEventLogInstaller.cs için yeniden adlandırın.
  5. Varolan kod MyEventLogInstaller.vb veya MyEventLogInstaller.cs, aşağıdaki örnek kodla değiştirin:

    Visual Basic .NET örnek
    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 
    
    Using System.Diagnostics kullanarak System.ComponentModel kullanarak; System.Configuration.Install kullanarak Visual C# .NET örnek
    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. Yapı) menüsünde, EventLogSourceInstaller.dll oluşturmak için Build Solution ' ı tıklatın.
  7. Visual Studio .NET komut istemini açın.
  8. Komut isteminde, EventLogSourceInstaller.dll bulunduğu klasöre gidin.
  9. OlayKaynağı oluşturmak için aşağıdaki komutu çalıştırın:
    Installutil EventLogSourceInstaller.dll

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

  1. Yeni bir ASP.NET Web uygulaması oluşturmak için Visual Basic .NET veya Visual C# .NET'i kullanın. Varsayılan olarak, WebForm1.aspx dosyası oluşturulur.
  2. Varolan kod, WebForm1.aspx HTML görünümünde aşağıdaki örnek kodla değiştirin:

    Visual Basic. NET'te örnek
    <%@ 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 örnek
    <%@ 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. Hata Ayıkla) menüsünde, WebForm1.aspx sayfayı tarayıcıda görüntülemek için Başlat ' ı tıklatın.
  4. TextBox ' de bir metin yazın ve sonra da <a2>olay günlüğüne Yaz</a2>'ı tıklatın.
  5. Ele alınan hata iletisi "Belirtiler" bölümünde, bu makalenin görünür.
  6. Bu sorunu gidermek için <a0></a0>, "Çözüm" bölümünde anlatıldığı gibi bir olay kaynağı oluşturun ve aşağıdaki kodu WebForm1.aspx Açıklama:
    EventLog.CreateEventSource(ev.Source, "Application")
  7. 3 Ve 4 numaralı adımları yineleyin.

Referanslar

Daha fazla bilgi için aşağıdaki Microsoft Web sitelerini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/f5dcf6h3(vs.71).aspx
http://msdn2.microsoft.com/en-us/library/system.diagnostics.eventlog(vs.71).aspx

Özellikler

Makale numarası: 329291 - Last Review: 3 Aralık 2007 Pazartesi - Gözden geçirme: 2.10
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Services version 5.1
  • Microsoft Internet Information Services 6.0
Anahtar Kelimeler: 
kbmt kberrmsg kbwebforms kbsecurity kbprb KB329291 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:329291

Geri Bildirim Ver

 

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