asp.net-mvc – 从ASP.NET MVC应用程序写入EventLog时的安全异常
|
我有一个使用一些业务逻辑创建的库,包括写入System.Diagnostics.EventLog实例.该库通常从 Windows服务应用程序调用,但现在我正在尝试从我的ASP.NET MVC应用程序调用这些相同的库函数. 我在我的控制器中尝试这个代码来创建我传递到需要写入日志的方法的EventLog实例. Dim log = New EventLog("Application",My.Computer.Name,"MyMVCApp")
当库方法中的代码尝试写入日志时,会生成以下错误: [SecurityException: Requested registry access is not allowed.] System.ThrowHelper.ThrowSecurityException(ExceptionResource resource) +51 Microsoft.Win32.RegistryKey.OpenSubKey(String name,Boolean writable) +7462217 System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) +366 System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName,String currentMachineName) +194 System.Diagnostics.EventLog.WriteEntry(String message,EventLogEntryType type,Int32 eventID,Int16 category,Byte[] rawData) +205 System.Diagnostics.EventLog.WriteEntry(String message,EventLogEntryType type) +14 我的网络应用程序作为运行IIS 6的Windows Server 2003上的网络服务用户运行.为了使网络服务用户能够访问注册表,我需要做些什么? 有没有更好的方法来创建在ASP.NET MVC应用程序中使用的EventLog实例?是否有一个已经由框架创建,我只需要参考? 解决方法从MSDN:“使用网络服务身份运行的应用程序可以使用现有的事件源写入事件日志,但由于注册表许可权不足,它们不能创建新的事件源”.和… “如果与EventLog实例关联的事件日志的源不存在,则会创建一个新的事件源. 所以看起来你的事件日志源不存在,它试图使用网络服务用户创建一个新的事件日志源(这需要写入注册表,所以不工作). “要使您的ASP.NET应用程序使用不存在的事件源写入事件日志,您有两个选项: >在应用程序安装时创建新的事件源 因此,需要在应用程序之外创建日志(您无法使用此用户进行编程操作),手动进行操作,也可以创建简单的命令行应用程序来简化安装. 有关详细信息: http://msdn.microsoft.com/en-us/library/ms998320.aspx#paght000015_eventlogaccess 就个人而言,我建议您不要更改网络用户权限,而是在Web应用程序之外创建日志源.我的偏好是在一个控制台应用程序(这将需要大约5分钟的写作,你还可以用来准备其他机器).在VS.NET中启动新的控制台应用程序,并添加代码来创建日志源.一个例子: http://www.dotnetspider.com/resources/23593-Create-Event-log-VB-NET.aspx 然后从cmd行运行控制台应用程序,并以适当的权限登录. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-identity – 为什么一个站点的ASP.NET身份登录可以
- asp.net-mvc – 如何使用ASP.net MVC实现动态面包屑?
- asp.net – 禁用ASPNET标识2.0中的用户
- asp.net – 如何在加载/性能测试期间找到IIS要模拟的平均并
- .net – 如何动态清除用户控件中的所有控件?
- asp.net-mvc – 如何在多个Asp.net MVC应用程序中使用通用布
- asp.net-mvc – Rotativa和Bootstrap网格样式
- asp.net-web-api – 在Webapi中使用Url.Link与属性路由2
- asp.net-mvc – 如何使用ASP.NET MVC在我的现有数据库中设置
- asp.net-mvc – SignalR和MVC包
- asp.net-mvc – ASP.NET MVC异常处理
- asp.net-mvc – 如何在ASP.NET MVC 3中更新复杂模
- asp.net-mvc – 使用Razor的ASP.NET MVC 3 – 将
- asp.net-mvc – ASP .Net MVC 3:单元测试控制器
- asp.net – 如何在GridView中隐藏TemplateField列
- asp.net-mvc-3 – 是否需要StructureMap HttpCon
- asp.net-mvc – 如何在MVC中排除此syntext中的另
- asp.net-mvc – Asp.net Web api异常仅在IIS部署
- 在ASP经典中编写JavaScript
- asp.net – 禁用按钮但看起来很活跃
