我在事件查看器中看到以下事件:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" />
<EventID Qualifiers="49152">7024</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8080000000000000</Keywords>
<TimeCreated SystemTime="2013-02-26T15:38:20.264489900Z" />
<EventRecordID>151689</EventRecordID>
<Correlation />
<Execution ProcessID="716" ThreadID="3976" />
<Channel>System</Channel>
<Computer>***</Computer>
<Security />
</System>
<EventData>
<Data Name="param1">Our service name</Data>
<Data Name="param2">%%1</Data>
</EventData>
</Event>
请注意 param1 和 param2 的值 - 虽然第一个值没问题,但第二个值由于某种原因显示 %%1,并且(可能)这就是为什么事件文本显示这样的内容(我替换了实际的服务名称):
我们的服务名称服务因服务特定错误“功能不正确”而终止。
%%1 是什么意思?我该如何进一步调查这个问题?
答案1
除非我对您的问题感到困惑并使用您引用的文字,那么:
<Data Name="param1">Our service name</Data>
<Data Name="param2">%%1</Data>
这些是放入事件文本中的参数。
例如,如果是:
<Data Name="param1">ServerFault</Data>
<Data Name="param2">Google is cooler</Data>
那么事件错误将会显示为:
ServerFault 服务因服务特定错误而终止 Google 更酷。
因此,在您的情况下,param2 值看起来是一个引用“不正确的函数”的变量“%%1”。
此时,您需要调查为什么该特定服务会因错误的功能而失败……这是基于您正在运行的实际服务/应用程序的另一个问题。