2

我正在尝试使用来自 nuget 的 Microsoft.Diagnostics.Tracing.EventRegister 注册 EventSource。我重建我的项目并生成清单。

调试

之后,我通过管理员运行 cmd 并执行以下命令:

wevtutil.exe im "ETW loggiing.MyTestSource.etwManifest.man"

然后 cmd 返回这个警告

**** Warning: Publisher MyTestSource resources could not be found or are not 
accessible
to the EventLog service account (NT SERVICE\EventLog).

之后我更改了文件权限

允许

它有效,但为什么会出现此警告以及如何使用代码解决此问题?

4

1 回答 1

0

我通过从代码设置对 dll 文件的访问来解决此问题:

FileInfo fInfo = new FileInfo(path);
        if (fInfo.Exists)
        {
            FileSecurity security = fInfo.GetAccessControl();
            security.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.AuthenticatedUserSid, null), FileSystemRights.ReadAndExecute, AccessControlType.Allow));
            fInfo.SetAccessControl(security);
        }
于 2019-09-26T03:43:12.497 回答