首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EventLog WriteEntry not不写入C#中的EventViewer

EventLog WriteEntry not不写入C#中的EventViewer
EN

Stack Overflow用户
提问于 2014-11-06 03:23:43
回答 3查看 2.9K关注 0票数 2

我已经创建了一个C#应用程序,它在事件查看器中创建自定义日志名称,并将条目写入事件查看器。

我的应用程序在Windows7OS机器上运行良好,但是当我将我的二进制文件复制到另一台Windows2012服务器标准(SP1)机器上时,它就不能工作了。

我运行我的应用程序RunAs管理员,我只看到自定义日志名称,但没有日志记录消息。

我已经在注册表事件日志条目中授予了完全权限,但没有成功。有人能建议我怎么解决这个问题吗?或调试技术来解决此问题。

我已经调试过的代码没有异常,代码运行的很流畅。我的代码非常简单,如下所示:

代码语言:javascript
复制
EventLog.CreateEventSource("MyApp", "TestingApplication")
EventLog.WriteEntry("MyApp", "Testing 123")

今天我测试了相同的eventsource和eventlogname,就像下面的EventLog.CreateEventSource("MyApp","MyApp")它在window-2012服务器标准(SP1)中工作得很好,在Win-2012(SP1)中有什么问题吗,或者我错过了什么。

EN

回答 3

Stack Overflow用户

发布于 2014-11-06 03:34:42

即使以管理员身份运行,在Windows Server2008 R2中,它也默认没有提升的权限。您需要提升权限才能创建源。一旦创建了源文件,它就应该允许您对其进行写入。

有几种方法可以解决这个问题,如果您正在构建一个实际的应用程序,您可以修改应用程序清单以要求提升特权和管理员权限:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?> 
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" 
    xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" 
    xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <assemblyIdentity version="1.0.0.0" name="MyApplication" />
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
                <requestedExecutionLevel level="requireAdministrator" 
        uiAccess="false" />
            </requestedPrivileges>
        </security>
    </trustInfo>
</asmv1:assembly>  

或者,如果您正在构建一个普通的应用程序,您可以将创建事件源的代码拆分到单独的进程中。然后,您可以检查事件源是否存在,如果存在,只需使用它,如果不存在,则可以运行创建事件源的新流程。

Process启动信息中,您将需要'runas'动词。

如果你运行的是windows服务,你会受到更多的限制,因为据我所知,这些服务没有能力通过它们的清单直接“提升”特权。

但是,您的服务安装程序可以很好地升级,并且应该在所需的管理员权限下运行,您可以在服务安装程序中创建事件源;然后在服务本身中使用它。

票数 3
EN

Stack Overflow用户

发布于 2016-09-01 03:03:22

我也有同样的问题。我使用的是WinServer 2012r2。日志创建成功,但写入事件出现在应用程序日志中。我读了很多MSDN和论坛,做了所有的事情,但仍然有这个问题。似乎MS在最新的.Net框架中有一个错误,导致所有消息都写入应用程序日志:(

最后,在我重新启动服务器之后,一切都运行得很好。如果使用eventcreate命令行测试一切正常,我不确定为什么需要重启服务器。

票数 1
EN

Stack Overflow用户

发布于 2017-04-25 22:36:39

我通过停止/启动Windows事件日志服务解决了这个问题。我不知道问题出在哪里,但就像Leo说的那样,这可能是个bug。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26765385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档