windows server下iis无法访问asp网页
![asp文件用什么打开(asp文件用iis环境运行)](https://www.zun.com/zx/wp-content/themes/justnews/themer/assets/images/lazy.png)
win2000下iis无法访问asp网页 未能启动 aspnet_wp.exe
今天维护一个windows2000的iis服务器,网页无法访问,系统应用程序日志提示:
①、未能启动 aspnet_wp.exe,原因是配置文件的 processModel 节中提供的用户名和/或密码无效。
②、未能启动 aspnet_wp.exe。失败的 HRESULT:80004005
找了很多原因,都说是域服务器的donnet下的用户权限配置问题,引用详见下面,但是我的服务器不在域环境中,纳闷了很久。
引用:
************************************************************************************
Win2000域服务器 IIS 无法使用asp.net程序的解决方法
把一台服务器升级为域控制器后,安装了ASP.NET,配置完IIS后,发现无法运行*.ASPX文件,每次运行都告诉我服务器内部错误,同时会在系统应用程序日志里加上以下2个错误
未能启动 aspnet_wp.exe,原因是配置文件的 processModel 节中提供的用户名和/或密码无效。
未能启动 aspnet_wp.exe。失败的 HRESULT:80004005
*.ASP文件运行正常,请那位高手指点一下,到底是什么问题?
解决的办法有几种,
其中最快但不安全的一种是:
更改machine.config文件,
它位于C:WINNTMicrosoft.NET Frameworkv1.0.3705(asp.net 1.0是这样,如果你的版本是1.1的,文件夹名回不同)CONFIG,
将里面一个部件<processModel>中的 username的属性设置为SYSTEM,正因为它原来默认的设置为machine,
所以访问的asp.net的用户名为aspnet,而这个帐号为本地帐号,而我们登录的帐号是域控制器的帐号,不是本地机器的帐号,
这样导致aspnet_wp.exe找不到一个本地的localmachinename aspnet帐号而不能启动.
这种方法我实验过,验证上述情况.但它很不安全,但你发布asp.net网页时,浏览的用户在你的域中是属于system 属性,
这样会带来安全隐患.最好的办法就是,也是微软推荐的.在你的域中添加一个aspnet帐号,设置适当的权限,而不去更改 machine.config文件.
解决方案
要解决此问题,请使用下列方法之一:
?创建具有正确权限的弱帐户,然后配置 Machine.config 文件的 <processModel> 部分以使用该帐户。
?在 Machine.config 文件的 <processModel> 部分,将 userName 属性设置为 SYSTEM。
?配置 Machine.config 文件的 <processModel> 部分以使用管理员帐户。
注意:在 ASP.NET 1.1 中,ASPNET 的进程标识为 IWAM_MachineName,所以不存在此问题。
注意:如果允许 ASP.NET 应用程序作为 SYSTEM 或管理员帐户运行,将带来严重的安全问题。如果使用其中的任一种替代方法,在Aspnet_wp.exe 进程中运行的代码都将有权访问域控制器和域设置。从 Aspnet_wp.exe 进程启动的可执行文件在相同的上下文中运行,它们也有权访问域控制器。
因此,Microsoft 建议使用第一种替代方法。若要使用第一种替代方法,请按照下列步骤操作: 1. 在计算机上创建名为 ASPUSER 的用户帐户,然后将此帐户添加到用户组中。
注意:如果更改了 .NET Framework 创建的 ASPNET 帐户的密码,也可以使用该帐户。您必须知道此帐户的密码,因为需要在后面的步骤中将该密码添加到 <processModel> 部分。
2. 授予 ASPUSER 或 ASPNET 帐户“作为批处理作业登录”用户权限。确保此更改出现在“本地安全策略”设置中。
注意:若要向此帐户授予“作为批处理作业登录”用户权限,可能必须在以下每一个安全策略中都授予此用户权限(从控制面板/管理工具开始操作):
?域控制器安全策略
?域安全策略
?本地安全策略
注意:您可能必须重新启动服务器以使这些更改生效。
3. 确保 ASPUSER 或 ASPNET 帐户有权访问启动 Aspnet_wp.exe 进程和为 ASP.NET 页提供服务所必需的全部目录和文件。有关必须授予此帐户何种权限的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
317012 INFO:ASP.NET 中的进程和请求标识
4. 打开 Machine.config 文件。该文件的路径是:%Systemroot%Microsoft.NETFrameworkv1.0.3705CONFIG。
5. 在 Machine.config 文件的 <processModel> 部分,将 userName 和 password 属性更改为您在第一步中创建的帐户的名称和密码。例如:
userName=”DomainNameASPUSER” password=”ASPUSERpassword”
6. 保存对 Machine.config 文件所做的更改。
************************************************************************************
弄了很久一直不行,后来终于发现系统中iuse_oaserver(oaserver是服务器的计算机名)用户名被改成了iuse_server,很多用户都没掉了或者被改名了,可能是原先中毒的缘故,我添加了IUSE_OASERVER,添加了dotnet1.1安装目录下的权限等,网页可以访问了。主要有以下操作:
①、aspnet_regiis -i (重新安装ASP.NET 组件);
②、给donnet1.1 安装目录C:WINNTMicrosoft.NETFrameworkv1.1.4322的安全属性里添加iuse_oaserver读取的权限;
③、重新启动一下IIS 或者在”运行”中输入:iisreset;
④、激活2个帐户 ASPNET、IUSR_machine(“machine”为计算机名称),不要设置密码,确认在IIS的安全设置(匿名访问)里面找到”IUSR_machine”用户,并且是由IIS控制密码的;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2705686032@qq.com 举报,一经查实,本站将立刻删除。原文转载: 原文出处: