exception - 无法加载文件或程序集 'System.Web' 或其依赖项之一。访问被拒绝

标签 exception iis-6 .net-assembly access-denied

我在运行 .NET webapp 时收到一个我不知道的 EventLog 错误。

该应用基本上从数据库读取,然后从磁盘读取(读取文件大小,然后写回数据库)。

我已经在我的工作站 (IISExpress) 和我们的其他服务器(带有 IIS7 的 Windows 2008)上正常运行该应用程序

但是当我在带有 IIS6 的 2003 R2 服务器上运行它时,我遇到了一些奇怪的行为。 IIS 应用程序启动并报告没有错误,但是当我尝试访问该网页时,我得到一个“服务器应用程序不可用”并且服务器上的事件日志给我这个转储:

Event Type: Error
Event Source:   ASP.NET 4.0.30319.0
Event Category: None
Event ID:   1325
Date:       24.05.2011
Time:       13:29:11
User:       N/A
Description:
Failed to initialize the AppDomain:/LM/W3SVC/1309226359/Root

Exception: System.IO.FileLoadException

Message: Could not load file or assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Access is denied.

StackTrace:    at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(String assemblyName, String typeName)
at System.AppDomain.CreateInstance(String assemblyName, String typeName)
at System.AppDomain.InternalCreateInstanceWithNoSecurity(String assemblyName, String typeName)
at System.AppDomain.InternalCreateInstanceWithNoSecurity(String assemblyName, String typeName)
at System.Activator.CreateInstance(AppDomain domain, String assemblyName, String typeName)
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)

应用程序继续在 IIS 中运行。此 IIS 还可以毫无问题地托管一大堆其他站点。是的,该应用程序设置为在 .NET 4 上运行,并且服务器托管其他 .NET 4 应用程序也没有任何问题。

据我所知,它无法加载 System.Web 程序集,但我不确定这怎么可能......

这是应用程序的 web.config:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <globalization culture="nb-NO"/>
        <compilation debug="true" targetFramework="4.0">
            <assemblies>
                <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
            </compilation>
        <customErrors mode="Off"></customErrors>
        <xhtmlConformance mode="Strict"/>
        <httpRuntime requestValidationMode="2.0"/>
    </system.web>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"></modules>
    </system.webServer>
</configuration>

最佳答案

这可能是由于您的 Web 应用程序文件夹中的文件系统权限不足造成的。

我通过给 ASPNETNetwork Service 帐户 Read & ExecuteList Folder Contents 解决了同样的问题> 对 Web 根目录和所有子项的权限。

关于exception - 无法加载文件或程序集 'System.Web' 或其依赖项之一。访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6109979/

相关文章:

java - try catch 异常总是返回 null

python - linux/python 中的异常渗透

http - 在请求中包含 Via header 时,IIS6 不执行 gzip 压缩

c# - 在创建表单实例时应用 CulutureInfo

c# - 在运行时动态更改对 dll 的引用

C++:堆栈不会在抛出异常时展开

php - 在 PHP 中抛出 NotImplementedError?

asp.net - HttpModule 在 IIS 6 上未接收 cookie

coldfusion - 尝试在 ColdFusion 8/Windows Server 2003/IIS6 上使用 taffy RESTful API 框架时出现 404

c# - 检查加载程序集的窗口是否打开