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)、确保该用户对虚拟目录具有访问权限。
注意红色部分,不要忘记检查这里的虚拟目录访问权限,有时问题可能就是由这么一个小地方引起的。