asp.net 由于无法创建应用程序域,因此未能执行请求错误的解决方法

发布时间:2020-04-06编辑:脚本学堂
asp.net程序在服务器上运行时,一直报错:由于无法创建应用程序域,因此未能执行请求。本文为大家提供了一种方便实用的解决方法,供大家参考。

asp.net写的程序,本地测试一切正常,放到服务器上一直报错:由于无法创建应用程序域,因此未能执行请求的错误信息。
事件查看日志,发现错误信息:
1、由于无法创建应用程序域,因此未能执行请求。错误:   0x80070005   拒绝访问。
2、未能初始化   AppDomain:/LM/W3SVC/1635210705/Root   
Exception:   System.IO.FileLoadException   
Message:   未能加载文件或程序集“System.Web,   Version=2.0.0.0,   Culture=neutral,   PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。拒绝访问。   
StackTrace:
在   System.Reflection.Assembly.nLoad(AssemblyName   fileName,   String   codeBase,   Evidence   assemblySecurity,   Assembly   locationHint,   StackCrawlMark&   stackMark,   Boolean   throwOnFileNotFound,   Boolean   forIntrospection)  
 在   System.Reflection.Assembly.InternalLoad(AssemblyName   assemblyRef,   Evidence   assemblySecurity,   StackCrawlMark&   stackMark,   Boolean   forIntrospection)  
 在   System.Reflection.Assembly.InternalLoad(String   assemblyString,   Evidence   assemblySecurity,   StackCrawlMark&   stackMark,   Boolean   forIntrospection)  
 在   System.Activator.CreateInstance(String   assemblyName,   String   typeName,   Boolean   ignoreCase,   BindingFlags   bindingAttr,   Binder   binder,   Object[]   args,   CultureInfo   culture,   Object[]   activationAttributes,   Evidence   securityInfo,   StackCrawlMark&   stackMark)  
 在   System.Activator.CreateInstance(String   assemblyName,   String   typeName)  
 在   System.AppDomain.CreateInstance(String   assemblyName,   String   typeName)  
 在   System.AppDomain.CreateInstance(String   assemblyName,   String   typeName)  
 在   System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String   appId,   IApplicationHost   appHost,   HostingEnvironmentParameters   hostingParameters)  
 在   System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String   appId,   IApplicationHost   appHost,   HostingEnvironmentParameters   hostingParameters) 

可以通过如下的方法解决:
1、重新注册IIS, NET/Framework/v2.0.50727里的aspnet_regiis.exe 运行它,重新注册一下
先卸载:.net aspnet_regiis.exe -u
重新安装:aspnet_regiis.exe -i

2、安装2.0之后,查看IIS的虚拟目录的属性设置中的ASP.NET标签是否为2.0。

3、权限问题:
 (1)、检查应用程序池的属性,查看它是以什么用户身份运行的,一般是NETWORK   SERVICE
 (2)、确保这个用户对.NET   Framework   2.0的目录有访问权限:systemroot:/Windows/Microsoft.NET/Frameworks/2.0.xxxx
 (3)、确保该用户对虚拟目录具有访问权限。

注意红色部分,不要忘记检查这里的虚拟目录访问权限,有时问题可能就是由这么一个小地方引起的。