如何找到正确的协议名Eventlog c#

如何找到正确的协议名Eventlog c#,c#,windows,service,event-log,C#,Windows,Service,Event Log,我的任务: 我想显示打印作业中windows事件日志中的条目。 我从msdn和不同的网站上找到了各种教程,但我无法访问我首选的协议/服务名称 Microsoft Windows打印服务 my Code ( c#): string lists = EventLog.LogNameFromSourceName("Microsoft-Windows-PrintService/Operational", "."); 但是这个代码不起作用。有人知道我的问题的解决方案或解决方法吗。 这是我在c

我的任务: 我想显示打印作业中windows事件日志中的条目。 我从msdn和不同的网站上找到了各种教程,但我无法访问我首选的协议/服务名称

Microsoft Windows打印服务

    my Code ( c#): 
 string lists = EventLog.LogNameFromSourceName("Microsoft-Windows-PrintService/Operational", ".");
但是这个代码不起作用。有人知道我的问题的解决方案或解决方法吗。 这是我在c#的第一个项目


提前谢谢

您的呼叫语法正确。我认为您在调用中指定的源可能不存在

如果调用EventLog.SourcesExists(“Microsoft Windows PrintService/Operational”),是否返回false?如果是这样,则您传递的源字符串不正确,您需要从事件查看器中找到正确的源

编辑:在回应你稍后的帖子时,我认为权限与此无关。我能够访问“应用程序和服务日志”源,而无需做任何特殊的操作

根据之前的帖子。然而,我确实发现了一个可以生成所有事件源列表的应用程序。它可能有助于找到您正在寻找的源


祝你好运

谢谢你的回复

是,SourceExist方法返回false。 隐马尔可夫模型。。我不知道如何找到正确的服务名称

SoruceExist方法仅对“Windows协议”部分下列出的所有协议返回true。位于“Anwendungs-und Dienstprotokolle”部分下的其他协议(我使用的是德语windows版本,可能翻译为“应用程序和服务协议”),该方法返回false

在此位置,日志将保存在

 %SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-PrintService%4Operational.evtx
我是否需要特殊权限才能“输入”这些日志(目前,Visual Studio是以管理员身份启动的,仅..足够吗?)


谢谢

是否有任何错误消息?是否在系统中看到任何具有指定源(“Microsoft Windows PrintService/Operational”)的事件?如果是,您在哪个日志中看到它们?谢谢您的帮助!我无法确定事件日志的正确路径,但我采用另一种方式获取打印作业(实际上,我使用WMI读取作业)。但是谢谢你的提示!