在Windows 2000服务器(IIS 5)上托管ASP.NET 2.0 Web应用程序之后。 我无法浏览网站。
浏览器上显示以下错误消息,并添加了三个事件日志条目...
浏览器错误消息
服务器应用程序不可用您尝试在此Web服务器上访问的Web应用程序当前不可用。请点击网络浏览器中的“刷新”按钮重试您的请求。
事件日志条目
事件类型:错误
事件来源:ASP.NET 2.0.50727.0
活动类别:无
事件编号:1000
日期:2008年10月24日
时间:下午3:45:26
用户:N / A
电脑:XXXXX
说明:aspnet_wp.exe(PID:XXXX)意外停止。事件类型:错误
事件来源:ASP.NET 2.0.50727.0
活动类别:无
事件ID:1088
日期:2008年10月24日
时间:下午3:45:26
用户:N / A
电脑:XXXXX
描述:无法执行请求,因为无法创建App-Domain。错误:0x80070005访问被拒绝。
事件类型:警告
事件来源:ASP.NET 2.0.50727.0
活动类别:无
事件编号:1073
日期:2008年10月24日
时间:下午3:45:26
用户:N / A
电脑:WEBDEV
说明:无法初始化AppDomain:/ LM / W3SVC / 1 / Root / WebApplicationName
例外:System.IO.FileLoadException
消息:无法加载文件或程序集'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)
任何想法......
**编辑**
为什么抛出System.IO.FileLoadException来访问System.Web程序集?
答案 0 :(得分:3)
我发现当网站文件夹被复制到服务器时,它继承了父文件夹的安全权限,该文件夹只有管理员,管理员和管理员的权限。系统帐户。
我添加了
阅读&执行,列出文件夹内容和读取权限。
即使问题已解决,我仍然有一些问题
从第三个事件日志条目中可以清楚地看出,ApplicationManager无法创建System.Web程序集中的HostingEnvironment。
由于System.Web抛出了FileLoadException,因此ASP.NET工作进程似乎无法访问GAC文件夹。
为什么抛出FileLoadException来访问System.Web?
答案 1 :(得分:1)
从外观上看,您的ASP.NET安装权限设置不正确。通常最好的办法就是卸载并重新安装ASP.NET部分。您可以通过以下方式轻松完成此操作。
这将卸载ASP.NET并重新安装,然后应该为该帐户建立适当的权限。
答案 2 :(得分:0)
此错误表示您的代码抛出了一个异常,该异常导致IIS崩溃或强制关闭。导致这种情况的常见异常是OutOfMemoryException和StackOverflowException。
您正在获取FileLoadException,但可能存在潜在的OutOfMemoryException或类似的实际上是其根本原因。如果不知道你要加载什么,以及里面的代码,就不可能知道究竟是什么导致了你的问题。
我要做的第一件事是排除装载程序集的问题,就是尝试在测试工具中反映出来并查看是否发生了同样的问题。如果是这样,那么问题在于您尝试加载的DLL,而不是IIS。
答案 3 :(得分:0)
我遇到了同样的问题,并没有使用带-u和-i的aspnet_regiis,而其他许多人建议使用here。 但在我清理了“%windir%\ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files”文件夹并将此文件夹的读写权限从web.config中的identity impersonate部分赋予用户后,问题就消失了。仅为本地ASPNET用户提供这些权利是不够的。