相关疑难解决方法(0)

写入事件日志时出现System.Security.SecurityException

我正在努力尝试将ASP.NET应用程序从Server 2003(和IIS6)移植到Server 2008(IIS7).

当我尝试访问浏览器上的页面时,我得到了这个:

'/'应用程序中的服务器错误.

安全例外

说明:应用程序尝试执行安全策略不允许的操作.要授予此应用程序所需的权限,请与您的系统管理员联系或在配置文件中更改应用程序的信任级别.

异常详细信息:System.Security.SecurityException:找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全性

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

堆栈跟踪:

[SecurityException:找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全.]

System.Diagnostics.EventLog.FindSourceRegistration(String source,String machineName,Boolean readOnly)+562 System.Diagnostics.EventLog.SourceExists(String source,String machineName)+251

[剪断]

这些是我为尝试解决它而做的事情:

  1. 授予"Everyone"对密钥的完全访问权限HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security.这很有效.但我自然不能在生产中这样做.所以我在运行应用程序几分钟后删除了"Everyone"权限,错误重新出现.

  2. 我在应用程序日志和安全日志中创建了源代码(我通过regedit对其进行了验证)在安装期间使用提升的权限,但错误仍然存​​在.

  3. 我在应用程序中给了应用程序一个完整的信任级别web.config(并使用appcmd.exe),但无济于事.

有没有人能够了解这里可以做些什么?

PS:这是对这个问题的跟进.我按照给出的答案但没有用(见上面的#2).

windows asp.net iis-7 exception-handling event-log

186
推荐指数
10
解决办法
29万
查看次数

最好使用Windows服务重复程序调用

我正在构建我的第一个Windows服务.它是一个连接到邮箱并下载所有邮件并将其存储在本地驱动器上的组件.

我的问题是这些.

  1. 在c#windows服务中重复程序调用的最佳方法是什么.我想用一个简单的计时器?我在哪里开始和停止计时器?它是在服务本身还是我的服务运行的程序?

  2. Windows服务中应包含哪些代码以用于以下功能


protected override void OnStart(string[] args)
{
//timer?
// MyProgram mp = new MyProgram();
}
Run Code Online (Sandbox Code Playgroud)

我应该只使用上面的新实例启动我的应用程序,还是应该包含更多内容?

正如我所说,这是我第一次使用Windows服务.

编辑:
谢谢你的所有答案.当然有很多不同的方法可以做到这一点,但我发现对我来说最好的方法是作为解决方案的一个标记.

谢谢你的帮助!

c# service windows-services

2
推荐指数
1
解决办法
2628
查看次数