Server Application Unavailable...

本文探讨了IIS6中的应用程序隔离机制导致的ServerApplicationUnavailable错误。深入剖析了工作进程隔离模式下,不同.NET Framework版本应用程序共存的问题,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Server Application Unavailable

The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.

Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.

原来这个错误是由 IIS6应用程序隔离机制造成的。IIS默认的应用程序隔离机制被称为:工作进程隔离模式,在此模式中,应用程序被分为多个组,每个组就是一个应用程序池,每个应用程序池之间是相互隔离的。 隔离的好处当然就是安全啦,稳定啦,等等。IIS中的每个应用程序池由一个工作进程分别进行管理,也就是"W3wp.exe" 。如果有多个应用程序池中的程序运行,我们就能看到多个w3wp.exe 我们平时新建的虚拟目录都默认被指向IIS6“DefaultAppPool" 中, 所以在默认情况下,不管你有多少个asp.net程序在运行,在“Windows任务管理器中你只能看到一个w3wp.exe进程。

出现上述错误的原因是: .net Framework2.0的程序与.net Framework1.1(1.0)的程序被放入同一个应用程序池(默认情况下放入DefaultAppPool池),也就是由同一个工作进程: w3wp.exe 进行管理,而单个工作进程是无法同时管理不同的程序(或者不同版本的程序)的。如果先访问.net framework 1.1的页面,则工作进程先加载并管理了 1.1版本的程序集,此时访问.net framework 2.0web程序页面,Server Application Unavailable 错误就出来了。 反之,如果在默认应用程序池的w3wp.exe尚未启动前先访问了 2.0web程序(此时应用程序集已经加载了.net framework2.0Web程序集),再访问1.11.0Web程序页面时,同样会出现服务器应用程序不可用这样的中文提示。(您可以结束掉以前的w3wp.exe进行测试。)

解决办法:

1. IIS中新建一个应用程序池,IIS->Application Pools ->Create new AppPoolFramework1.1

2. 然后选中你的基于.net framework2.0的虚拟目录,点属性-》在应用程序池中选择刚才新建的的应用程序池,点击确定IIS->Web Sites->Your Sites->Right Click ->Properties->Directory(Tab Page)->Application Pool-> AppPoolFramework1.1

"PackageManager" prio=5 tid=71 Blocked group="main" sCount=1 ucsCount=0 flags=1 obj=0x22c90a8 self=0xb400007478ef1240 sysTid=1713 nice=-2 cgrp=foreground sched=0/0 handle=0x72b1180500 state=S schedstat=( 308776153298 990178523571 361268 ) utm=22280 stm=8597 core=1 HZ=100 stack=0x72b107d000-0x72b107f000 stackSize=1037KB held mutexes= at com.android.server.uri.UriPermissionOwner.removeReadPermission(UriPermissionOwner.java:157) - waiting to lock <0x035d2282> (a com.android.server.uri.UriPermissionOwner) held by thread 361 at com.android.server.uri.UriPermission.revokeModes(UriPermission.java:216) - locked <0x01b77d93> (a com.android.server.uri.UriPermission) at com.android.server.uri.UriGrantsManagerService.removeUriPermissionsForPackageLocked(UriGrantsManagerService.java:552) at com.android.server.uri.UriGrantsManagerService.-$$Nest$mremoveUriPermissionsForPackageLocked(unavailable:0) at com.android.server.uri.UriGrantsManagerService$LocalService.removeUriPermissionsForPackage(UriGrantsManagerService.java:1835) - locked <0x07c2d920> (a java.lang.Object) at com.android.server.am.ActivityManagerService.forceStopPackageInternalLocked(ActivityManagerService.java:4992) at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:4893) at com.android.server.am.ActivityManagerService$LocalService.killApplicationSync(ActivityManagerService.java:19518) - locked <0x0cc42acd> (a com.android.server.am.ActivityManagerService) at com.android.server.pm.PackageManagerService.killApplicationSync(PackageManagerService.java:3368) at com.android.server.pm.PackageFreezer.<init>(PackageFreezer.java:108) at com.android.server.pm.PackageManagerService.freezePackage(PackageManagerService.java:4666) at com.android.server.pm.PackageManagerService.-$$Nest$mfreezePackage(unavailable:0) at com.android.server.pm.PackageManagerService$IPackageManagerImpl$1.run(PackageManagerService.java:5114) at android.os.Handler.handleCallback(Handler.java:995) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loopOnce(Looper.java:265) at android.os.Looper.loop(Looper.java:358) at android.os.HandlerThread.run(HandlerThread.java:85) at com.android.server.ServiceThread.run(ServiceThread.java:49) DumpLatencyMs: 125.481 "binder:1624_1A" prio=5 tid=361 Blocked group="main" sCount=1 ucsCount=0 flags=1 obj=0x4d88158 self=0xb4000074790dd130 sysTid=3824 nice=0 cgrp=foreground sched=1073741824/0 handle=0x71aed40500 state=S schedstat=( 284050778469 908482207349 579785 ) utm=18166 stm=10238 core=2 HZ=100 stack=0x71aec49000-0x71aec4b000 stackSize=989KB held mutexes= at com.android.server.uri.UriPermission.removeReadOwner(unavailable:0) - waiting to lock <0x01b77d93> (a com.android.server.uri.UriPermission) held by thread 71 at com.android.server.uri.UriPermissionOwner.removeUriPermission(UriPermissionOwner.java:101) - locked <0x035d2282> (a com.android.server.uri.UriPermissionOwner) at com.android.server.uri.UriGrantsManagerService$LocalService.revokeUriPermissionFromOwner(UriGrantsManagerService.java:1853) at com.android.server.notification.NotificationManagerService.revokeUriPermission(NotificationManagerService.java:11413) at com.android.server.notification.NotificationManagerService.updateUriPermissions(NotificationManagerService.java:11367) at com.android.server.notification.NotificationManagerService$NotificationListeners.updateUriPermissionsForActiveNotificationsLocked(NotificationManagerService.java:14115) at com.android.server.notification.NotificationManagerService$NotificationListeners.onServiceRemovedLocked(NotificationManagerService.java:13501) at com.android.server.notification.ManagedServices.removeServiceLocked(ManagedServices.java:1994) at com.android.server.notification.ManagedServices.removeServiceImpl(ManagedServices.java:1984) - locked <0x0ade62d9> (a java.lang.Object) at com.android.server.notification.ManagedServices.-$$Nest$mremoveServiceImpl(unavailable:0) at com.android.server.notification.ManagedServices$ManagedServiceInfo.binderDied(ManagedServices.java:2210) at android.os.IBinder$DeathRecipient.binderDied(IBinder.java:340) at android.os.BinderProxy.sendDeathNotice(BinderProxy.java:883) DumpLatencyMs: 484.176
最新发布
07-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值