服务器应用程序不可用

xiaodoudingyaya 2010-01-15 11:01:26
在本地运行没有问题,上传到服务器就出现这个问题了,请教高手回答
服务器应用程序不可用
您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。

管理员注意事项: 详述此特定请求失败原因的错误消息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因
...全文
2909 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdqnlijinyyy 2011-08-10
  • 打赏
  • 举报
回复
我们公司的网站,前台没问题,后台出这个错,不知道是怎么回事
lyc305213781 2011-05-04
  • 打赏
  • 举报
回复
我们公司的网站,前台没问题,后台出这个错,不知道是怎么回事
feng5799 2010-07-26
  • 打赏
  • 举报
回复
可能是应用程序池的问题吧..
可能挂了,也可能程序池的位数不对
Ajax_Man 2010-07-26
  • 打赏
  • 举报
回复
你的应用程序是什么版本的?
如果是 .NET 3.0
那么服务器就得装 3.0版本的。
myhope88 2010-07-26
  • 打赏
  • 举报
回复
iie配置有问题,仔细检测下
caiseweijing 2010-07-26
  • 打赏
  • 举报
回复
找到当前网站目录->右键->属性->安全->添加->高级->立即查找->选择 Users 用户 ->确定->确定
TalesTen 2010-01-15
  • 打赏
  • 举报
回复
复制的


第一种情况:
在‘SDK 命令提示’下,执行:aspnet_regiis.exe -i

第二种情况:
iis中,站点‘asp.net’下的‘asp.net版本’改成‘2.0’

第三种情况:
iis中,站点‘属性/主目录’下的‘执行权限’改成‘脚本和可执行文件’

iis中,web服务扩展中,是否启动

在iis中的,asp.net配置设置中,应用程序的页面语言默认值,c#
启用调试


二、问题二:

在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。


解决办法:

可能是站点的目录和子目录下都有web.config文件造成的


.NET 2.0 和1.1 共用时,出现"服务器应用程序不可用"的错误.
其实是进程池调用冲突的问题,如果访问的两个应用程序,分别是2.0 和1.1, 而且他们共用一个进程池,
IIS 无法同时将其解析2种版本,就会出现如上的错误.

解决办法:
修改其中之一的进程池, 如把 2.0的应用程序的进程池改为 ASP.NET 2.0 . 即可。

2:
重新注册IIS, NETFrameworkv2.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:WindowsMicrosoft.NETFrameworks2.0.xxxx

如果以上两条都对,很不幸,你遇到了一个很奇怪的问题,我上次是把应用程序池的用户身份改成本地系统来运行的。

按照第二种解决方案配置: 把运行池的访问用户设置为"本地系统", 然后运行程序, 错误没在出现, 成功解决, 但是但在我选则"本地系统"时,IIS提示会有安全问题,本来有些担忧,但看了如下的回复后就没那么担忧了:
不用担心权限的问题,大所数系统都需要设置成本地系统才行
指间的风 2010-01-15
  • 打赏
  • 举报
回复
iis 配置问题
herichcq 2010-01-15
  • 打赏
  • 举报
回复
mark
liu_angelkismet 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 talesten 的回复:]
复制的


第一种情况:
在‘SDK 命令提示’下,执行:aspnet_regiis.exe -i

第二种情况:
iis中,站点‘asp.net’下的‘asp.net版本’改成‘2.0’

第三种情况:
iis中,站点‘属性/主目录’下的‘执行权限’改成‘脚本和可执行文件’

iis中,web服务扩展中,是否启动

在iis中的,asp.net配置设置中,应用程序的页面语言默认值,c#
启用调试


二、问题二:

在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。


解决办法:

可能是站点的目录和子目录下都有web.config文件造成的


.NET 2.0 和1.1 共用时,出现"服务器应用程序不可用"的错误.
其实是进程池调用冲突的问题,如果访问的两个应用程序,分别是2.0 和1.1, 而且他们共用一个进程池,
IIS 无法同时将其解析2种版本,就会出现如上的错误.

解决办法:
修改其中之一的进程池, 如把 2.0的应用程序的进程池改为 ASP.NET 2.0 . 即可。

2:
重新注册IIS, NETFrameworkv2.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:WindowsMicrosoft.NETFrameworks2.0.xxxx

  如果以上两条都对,很不幸,你遇到了一个很奇怪的问题,我上次是把应用程序池的用户身份改成本地系统来运行的。

按照第二种解决方案配置:  把运行池的访问用户设置为"本地系统", 然后运行程序, 错误没在出现, 成功解决, 但是但在我选则"本地系统"时,IIS提示会有安全问题,本来有些担忧,但看了如下的回复后就没那么担忧了:
不用担心权限的问题,大所数系统都需要设置成本地系统才行
[/Quote]
ttg520 2010-01-15
  • 打赏
  • 举报
回复
IIS的应用地址池挂了

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧