我正在努力尝试将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
[剪断]
这些是我为尝试解决它而做的事情:
授予"Everyone"对密钥的完全访问权限HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security.这很有效.但我自然不能在生产中这样做.所以我在运行应用程序几分钟后删除了"Everyone"权限,错误重新出现.
我在应用程序日志和安全日志中创建了源代码(我通过regedit对其进行了验证)在安装期间使用提升的权限,但错误仍然存在.
我在应用程序中给了应用程序一个完整的信任级别web.config(并使用appcmd.exe),但无济于事.
有没有人能够了解这里可以做些什么?
PS:这是对这个问题的跟进.我按照给出的答案但没有用(见上面的#2).
我刚刚从Win2003上的IIS6迁移到Win2012上的IIS8,用于托管ASP.NET应用程序.
在我的应用程序的一个特定文件夹中,我需要创建和删除文件.将文件复制到新服务器后,当我尝试删除文件时,我一直看到以下错误:
访问路径'D:\ WebSites\myapp.co.uk\companydata\filename.pdf'被拒绝.
当我检查IIS时,我看到应用程序在DefaultAppPool帐户下运行,但是,我从未在此文件夹上设置Windows权限以包含IIS AppPool\DefaultAppPool
相反,为了停止尖叫客户,我在该文件夹上授予了以下权限:
IUSR
IIS_IUSRS
这似乎有效,但我担心已经设置了太多的权限.我在网上阅读了有关IUSR是否真的需要的相互矛盾的信息.任何人都可以澄清哪些用户/权限足以创建和删除此文件夹上的文档吗?此外,IUSR是IIS_IUSRS组的一部分吗?
请参阅下面的答案.我不得不遗憾地做到这一点,因为最近的一些建议没有经过深思熟虑,甚至是安全的(IMO).