设为首页 收藏本站
查看: 961|回复: 0

[经验分享] IIS 中 .net 网站出现 服务器应用程序不可用

[复制链接]

尚未签到

发表于 2015-8-15 07:21:30 | 显示全部楼层 |阅读模式
原因
如果尝试通过   WindowsServer2003CD   在   Windows   Server   2003   Service   Pack   2   (SP   2)   集成执行就地升级作为现有   Windows   Server   2003   安装后运行   ASP.NET   2.0   应用程序发生此问题。   
当您执行就地升级,   升级过程复位权限和其他文件夹由   ASP.NET   使用   Microsoft   Internet   Information   Services   (IIS)   元数据库上。   因此,   自定义服务帐户将没有权限访问这些文件夹,   收到   "   症状   "   部分中所述错误信息。   
注意   一个就地升级类型又称为   "   修复安装   "。   
错误:   0x80070005   拒绝访问
服务器应用程序不可用   
您试图在此   Web   服务器上访问的   Web   应用程序当前不可用。请点击   Web   浏览器中的“刷新”按钮重试您的请求。   
管理员注意事项:   详述此特定请求失败原因的错误信息可在   Web   服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因。   
的错误.   
                      我查看了IIS配置没出错,和213上的一样,   运行时是Framework   2.0,   扩展服务都开了.     于是google了 "服务器应用程序不可用 ",网上提供的解决方案有以下几种:
1:   
.NET   2.0   和1.1   共用时,出现 "服务器应用程序不可用 "的错误.
其实是进程池调用冲突的问题,如果访问的两个应用程序,分别是2.0   和1.1,   而且他们共用一个进程池,
IIS   无法同时将其解析2种版本,就会出现如上的错误.
解决办法:
修改其中之一的进程池,   如把   2.0的应用程序的进程池改为   ASP.NET   2.0   .   即可。   
2:
重新注册IIS,   NET\Framework\v2.0.50727里的aspnet_regiis.exe   运行它,重新注册一下.net   aspnet_regiis.exe   -u   先卸载   aspnet_regiis.exe   -i   重新安装   有时候重启一下服务器就好了。
按照一下2个方法配置了下,然后运行程序,但是还是出现同样的错误,郁闷.
又继续查找,   有一些人提示你 "查看事件查看器 ",于是我进了查看器查找,发现了如下2个错误提示:
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)      
                  于是又google了下 "由于无法创建应用程序域,因此未能执行请求。错误:       0x80070005       拒绝访问。 ",查到了一下解决方案:
1:
安装2.0之后,在IIS的虚拟目录的属性设置中会多出一个ASP.NET标签,在那里边把运行时调整为2.0,默认使用的是1.1的运行时。     
2:
这个是权限问题,      
    首先检查应用程序池的属性,看看它是以什么用户身份运行的,一般是NETWORK       SERVICE       然后确保这个用户对.NET       Framework       2.0的目录有访问权限,事实上应该是有的。目录是systemroot:\Windows\Microsoft.NET\Frameworks\2.0.xxxx      
        
    如果以上两条都对,请使用下面的方法
解决方案
要解决此问题,   通过使用   Aspnet   _   regiis.exe   实用程序配置自定义服务帐户。   从   ASP.NET   2.0   在命令提示符下,   运行   Aspnet   _   regiis.exe   实用程序通过   ga   开关   -::   ga   开关   -   
Aspnet_regiis   ?ga   AccountName   
注意   对于此命令,   AccountName   代表自定义服务帐户。   
例如,   您可运行以下命令向   NT   AUTHORITY\NETWORK   SERVICE   帐户授予权限:
aspnet_regiis   -ga   "NT   AUTHORITY\NETWORK   SERVICE "
然后给web目录增加network_service用户的权限

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-99097-1-1.html 上篇帖子: .Net中如何操作IIS(源代码) 下篇帖子: VC操纵IIS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表