Здравствуйте, я хочу получать уведомления о записи новых событий в журнал "Безопасность", но возникает ошибка доступа к реестру. Ругается именно из-за log.EnableRaisingEvents = true;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Diagnostics.Eventing;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string logName = "Security";
EventLogPermission eventLogPerm = new EventLogPermission(EventLogPermissionAccess.Administer, ".");
EventLog log = new EventLog(logName, ".");
log.EnableRaisingEvents = true;
Console.WriteLine(log.EnableRaisingEvents);
log.EntryWritten += new EntryWrittenEventHandler(OnEntryWritten);
}
public static void OnEntryWritten(object source, EntryWrittenEventArgs e)
{
Console.WriteLine(e.Entry.Message);
}
}
}
В результате возникает следующее сообщение об ошибке:
Необработанное исключение: System.Security.SecurityException: Запрошенный доступ к реестру запрещен.
в System.ThrowHelper.ThrowSecurityException(ExceptionResource resource)
в Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
в System.Diagnostics.EventLog.Exists(String logName, String machineName)
в System.Diagnostics.EventLogInternal.OpenForRead(String currentMachineName)
в System.Diagnostics.EventLogInternal.get_EntryCount()
в System.Diagnostics.EventLogInternal.StartListening(String currentMachineName, String currentLogName)
в System.Diagnostics.EventLogInternal.StartRaisingEvents(String currentMachineName, String currentLogName)
в System.Diagnostics.EventLogInternal.set_EnableRaisingEvents(Boolean value)
в System.Diagnostics.EventLog.set_EnableRaisingEvents(Boolean value)
в ConsoleApplication1.Program.Main(String[] args) в
d:\ConsoleApplication1\ConsoleApplication1\Program.cs:строка 21
При запуске с правами администратора в консоль выводит true, но в журнале событий "Приложение" регистрируется ошибка:
Имя сбойного приложения: ConsoleApplication1.exe, версия: 1.0.0.0, метка времени: 0x5930ed5c
Имя сбойного модуля: KERNELBASE.dll, версия: 10.0.15063.296, метка времени: 0x28e9cf15
Код исключения: 0xe0434352
Смещение ошибки: 0x000eb802
Идентификатор сбойного процесса: 0x370c
Время запуска сбойного приложения: 0x01d2db5c98bdd068
Путь сбойного приложения:
D:\ConsoleApplication1\ConsoleApplication1
\bin\Debug\ConsoleApplication1.exe
Путь сбойного модуля: C:\WINDOWS\System32\KERNELBASE.dll
Идентификатор отчета: 9f82e369-4395-4d8f-a7f1-602d431a4870
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:
а также еще одна, такая же как выводилась в консоли
Программу нужно запускать с правами администратора
Добавь в Properties\app.manifest
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Суть в том, что у меня есть игровое приложениеЕсть текстовый файл в котором хранятся рекорды
Все события сенсорного взаимодействия порождают соответствующие события мышиТак, для Grid достаточно подписаться на MouseDown (можно как на Right button,...