ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND with Windows EWT
ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND with Windows EWT
我正在尝试将非常简单的日志打印到 Windows 事件查看器。当我在.cpp文件中调用EventWrite()
时,我在事件查看器中收到错误代码 15003 ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND
,并且不显示我的消息。我认为我遇到的问题是,即使我已将其拖到解决方案资源管理器的资源文件夹中,编译清单时生成的.rc
文件也没有与项目一起编译。
当我向wevtutil.exe
注册清单时,我收到以下警告:Publisher ExampleProvider resources are not accessible
。当我询问有关此错误的详细信息时,我收到以下输出:Failed to open metadata for publisher ExampleProvider. Access is denied
。
我已经查看了注册提供程序(wevtutil)时拒绝访问,但它没有解决问题。
Visual Studio 中打开已编译的.dll
或.exe
文件,可以轻松验证.rc
文件是否正确编译到项目中。转到File->Open->File
并打开可执行文件或库。现在检查是否可以看到已编译的 ETW 资源文件。在我的项目中,它位于文件夹"WEVT_TEMPLATE"中。如果在二进制文件中看不到它,则可能尚未将其编译到二进制文件中。为此,请将.rc
添加到项目中(选择添加资源)。
旁注:还请验证清单文件中的资源文件名和消息文件名是否正确指向您的库或可执行文件。
在命令提示符下运行注册命令后。
wevtutil im yourProvider.man
您可以通过在之后运行以下命令来检查提供程序注册以及可能的错误:
wevtutil gp yourProvider
希望有帮助。
我发现这是一个权限问题,就像在注册提供程序(wevtutil)时拒绝访问一样。我通过将我的项目放在 C 驱动器的根目录来纠正这一点。
- Cmake with Flex/Bison on windows
- Boost::process on Windows - with MinGW?
- TLS with http_listener in Microsoft cpprestsdk on Windows
- CURL SFTP support with Windows SChannel?
- OpenMP 4.5 on Windows with Clang, CMake & Ninja
- Windows 10 Credential Provider with C#
- C++ issues with Windows UAC
- 在Windows下编译程序会给出一堆"error: template with C linkage"报告
- ::std::regex_replace with syntax flag icase on Windows(VS201
- winhttpsendrequest POST with https on windows server 2008 rc
- 在 Windows 7 上安装 OpenCV 3.1.0 with CMake,opencv_ffmpeg.dll无效的
- 如何从带有C++的Windows上的注册表中获取具有完整路径的"Open With"程序?
- cppUnit with Windows+minGW
- Performance Windows Socket in C++ with Matlab
- Qt5 Project on Windows with MinGW
- GCC with Windows SDK?
- Cython in Windows 64 with GSL
- g++ Windows Linker "Undefined reference to..." with SDL2
- visual Sign Hash with windows Cryptography functions C++
- ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND with Windows EWT