Windows 2008 IIS 7 ASP.NET 写入 Event Log 发生 安全性例外状况
Windows 2008 IIS 7 ASP.NET 写入 Event Log 发生 安全性例外状况
这篇文章,将说明在 IIS 下使用 ASP.NET 写入自定 Event Log 所发生的问题,如何透过 ProceessMonitor 来观察出问题的方式。
情境:
你可能是接手站台的转移,这个站台记录相关启动资讯或系统错误的资讯,是透过自定 EventLog 方式,将相关资讯记录下来,
是使用下述的程序,建立自定的 EventLog 及写入一笔log的程序,发生以下的错误消息。
if (!(EventLog.SourceExists("MySource"))) {
EventLog.CreateEventSource("MySource", "myNewLog");
}
// Write an informational entry to the event log.
EventLog.WriteEntry("MySource", "写入 MySource");
安全性例外状况
描述: 应用程序尝试执行安全原则不允许的作业。如果要授与这个应用程序所需的权限,请联系您的系统管理员,或在组态档中变更这个应用程序的信任层级。
例外详细资讯: System.Security.SecurityException: 找不到来源,但无法搜寻部分或全部的事件记录档。无法存取的记录档: Security。
在这个错误的同时,我们可以透过 ProceessMonitor 来观察问题发生点,会发现是在 Registry 没有自定的 MySource ,
所以发生了这个错误,而详细的原因请参考KB329291的说明。
解决步骤:
1. 开始 - 执行 – regedit
2. 在 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplication 建立 自定的名称
结果:
再度执行原本的程序,就能看到正常的写入,从 ProcessMonitor 也看到正常的运行。
备注:
1.在其他的参考解决连结中,有特别再给予 Network Service 角色 Full Control 权限在 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlog ,
但在这个情境当中,并不需要特别给予这个权限,Network Service 本身就可以写入 Application 既有本身存在的 EventLog。
ex: 你可以使用这段程序进行测试 EventLog.WriteEntry("Application", "写入 Application");
2.如果需要自动化的建立,可参考 KB329291 ,透过 EventLogInstaller 的方式。
参考连结
PRB: "Requested Registry Access Is Not Allowed" Error Message When ASP.NET Application Tries to Write New EventSource in the EventLog
http://support.microsoft.com/kb/329291/en-us
IIS7: Web Application writing to Event Log generates Security Exception
http://www.christiano.ch/wordpress/2009/12/02/iis7-web-application-writing-to-event-log-generates-security-exception
原文:大专栏 Windows 2008 IIS 7 ASP.NET 写入 Event Log 发生 安全性例外状况
原文地址:https://www.cnblogs.com/petewell/p/11516520.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【pytorch-ssd目标检测】可视化检测结果
- 文件I/O
- 【python-leetcode856-子集】括号的分数
- 【python-子集】Generalized Abbreviation(广义缩写)
- spring之整合Hibernate
- 【pytorch】改造resnet为全卷积神经网络以适应不同大小的输入
- springmvc之数据的格式化
- 【python-leetcode207-拓扑排序】课程表
- 定时任务最简单的3种实现方法(Java)
- 回顾通用链表(亲测代码示例)
- 【python-leetcode210-拓扑排序】课程表Ⅱ
- Java实现最小生成树算法之Kruskal算法
- 来我们再聊聊 KMP 算法 -- 我懂,你也得懂
- 【pytorch】简单的线性回归
- 简单的并查集的实现