如何解决无法加载文件或程序集“ System.Web”或其依赖项之一访问被拒绝
| 运行.NET Web应用程序时,出现未知的EventLog错误。 该应用程序基本上从数据库读取,然后从磁盘读取(读取文件大小,然后写回到数据库)。 我已经在工作站(IISExpress)和其他服务器(带有IIS7的Windows 2008)上启动并正常运行了该应用程序 但是,当我在带有IIS6的2003 R2服务器上运行它时,我会感到有些奇怪。 IIS应用程序启动并没有报告任何错误,但是当我尝试访问该网页时,出现一个“服务器应用程序不可用”,并且服务器上的EventLog给了我这个转储: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,Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,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.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,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,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应用程序文件夹中的文件系统权限不足引起的。
我通过向Web根目录和所有子级授予
ASPNET
和Network Service
帐户Read & Execute
和List Folder Contents
权限来解决相同的症状。
,Lachlan Roche的回答对我有用。具体来说,我将对Web应用程序文件夹的“完全控制”权限授予了LOCAL_MACHINE \\ Users和LOCAL_MACHINE \\ IIS_IUSRS,其中LOCAL_MACHINE是我的本地计算机的域。我没有检查这两个组是否都需要完全访问权限,因此您可能不需要授予这两个组的访问权限。
我的系统是带有IIS 7.5.7600.16385和Visual Studio 12的Windows 7 Enterprise
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。