源未find,但部分或全部事件日志无法search
我收到以下例外。 我已经完全控制了registry编辑中Eventlogs上的Asp.net帐户。
[SecurityException:未find源,但无法search部分或全部事件日志。 无法访问的日志:安全。]
System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly, Boolean wantToCreate) +664 System.Diagnostics.EventLog.SourceExists(String source, String machineName, Boolean wantToCreate) +109 System.Diagnostics.EventLog.SourceExists(String source) +14 Microsoft.ApplicationBlocks.ExceptionManagement.DefaultPublisher.VerifyValidSource() +41
我猜这是由于服务器上的一些configuration问题?
EventLog.SourceExists
枚举通过HKLM\SYSTEM\CurrentControlSet\services\eventlog
的子项查看它是否包含具有指定名称的子项。 如果运行代码的用户帐户在读取目标资源之前没有对其尝试访问的子项(在您的情况下为Security
项)的读取访问权限,则会看到类似于您所描述的exception。
处理此类问题的常用方法是在安装时(在pipe理员帐户下) 注册事件日志源 ,然后假定它们在运行时存在,如果目标事件日志源实际上不存在,则允许将所得到的exception视为意外事件在运行时。
有同样的例外。 在我的情况下,我不得不使用pipe理员权限运行命令提示符。
从开始菜单中,右键单击命令提示符,select“以pipe理员身份运行”。
对我来说,这个错误是由于没有在pipe理员权限下运行的命令提示符。 您需要右键单击命令提示符并说“ 以pipe理员身份运行 ”。
您需要pipe理员angular色才能安装或卸载服务。
启动开发人员命令行“以pipe理员身份”。 此帐户可以完全访问安全日志
没有为我工作。
我创build了一个新的键和string值,并设法让它工作
Key= HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\<Your app name>\ String EventMessageFile value=C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll
对于我刚刚工作iisreset(以pipe理员身份运行cmd – > iisreset)。 也许有人可以试试看。
如果您正在IIS上执行SenseNet TaskManagement网站的新安装(从源代码而不是WebPI),您将收到此消息,通常与SignalR通信有关。 正如@ nicole-caliniou指出的那样,这是由于registry中的关键search失败。
要解决这个SenseNet TaskManagement v1.1.0,首先在web.config文件中findregistry项名称。 默认情况下它是“SnTaskWeb”。
<appSettings> <add key="LogSourceName" value="SnTaskWeb" />
打开registry编辑器regedit.exe
,并导航到HKLM\SYSTEM\CurrentControlSet\Services\EventLog\SnTask
。 右键单击SnTask并selectNew Key
,然后将SnTaskWeb
为上面显示的configuration。 然后右键单击SnTaskWeb
元素并selectNew Expandable String Value
。 该名称应该是EventMessageFile
,值数据应该是C:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll
。
关键字:signalr,sensenet,regedit,权限