我有一个Windows服务。我很难让EventLog正常工作。
在Windows Service的构造函数中,我执行:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX hotel: <http://users.jyu.fi/~mimomuki/everything/hotel#>
SELECT *
WHERE { ?room hotel:hasCity ?sender; hotel:hasFirstDay ?Firstday
FILTER ( ?Firstday >= "2016-09-01"^^xsd:date )
}
运行服务后,我没有例外,但我在事件查看器中的应用程序和服务日志下看不到任何内容! (即使在电脑复位后)。
我检查了我的注册表,我的服务显示在
中HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \服务\为MyService
不在这里:
HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \服务\事件日志\为MyService
我通过Visual Studio以管理员身份打开的 VS2015开发人员命令提示符安装Windows服务。
为什么?为什么不在eventlog中?为什么我在事件查看器中看不到它?
谢谢!
答案 0 :(得分:-1)
使用以下代码,在创建之前检查源是否存在。在此处查看命名约定:https://msdn.microsoft.com/en-us/library/2awhba7a.aspx
string machineName = "MyRemoteServerName";
string source = "MyCustomApp";
string logName = "Application";//can be Application, System, or a custom log name.
if (EventLog.SourceExists(logName, machineName))
return;
EventSourceCreationData eventSourceCreationData = new EventSourceCreationData(source, logName);
eventSourceCreationData.MachineName = machineName;
EventLog.CreateEventSource(eventSourceCreationData);
参考:https://msdn.microsoft.com/en-us/library/system.diagnostics.eventsourcecreationdata(v=vs.110).aspx