【问题标题】:401.2 Error in ASP.Net 2.0 on IIS 7.0 on Windows 2008Windows 2008 上 IIS 7.0 上的 ASP.Net 2.0 中出现 401.2 错误
【发布时间】:2012-04-16 10:05:38
【问题描述】:

我的“Hello World”c#.Net 应用程序在我的本地 Windows 7 上运行良好。移动到我们的服务器时出现 401.2 错误。

这是我所做的(遵循一些论坛中的建议):

  1. 将匿名身份验证使用更改为应用程序拉用户
  2. 创建了一个新的应用程序拉
  3. 创建了一个可以访问应用程序文件夹的新 Windows 用户
  4. 将应用程序拉取的身份验证设置为该用户
  5. 将我的应用程序的应用程序拉取设置为该应用程序拉取

请注意:

  1. 我从服务器内部和外部都收到错误
  2. 我从我测试的所有浏览器收到此错误:Chrome、IE 9.0 和 Firefox
  3. 同一文件夹中的 html 文件可见

我错过了什么? 谢谢, 阿萨夫

【问题讨论】:

  • 可能是windows认证引起的,你检查过吗?

标签: asp.net iis-7 windows-server-2008 windows-authentication


【解决方案1】:

您无需创建新的 windows 用户。我知道您已经说过您已经完成了哪些步骤,但我将重点介绍每次添加新网站时我所做的工作。

  • 将应用程序池的标识设置为 ApplicationPoolIdentity。
  • 在网站中,将Anonymous Authentication 设置为Enabled。点击 在右侧编辑并将Authentication Credentials 设置为 Application pool identity。
  • 在网站中,再次选择右侧的Basic Settings。点击 Connect As.. 按钮并确保 Application User 是 已选中。
  • 授予对硬盘驱动器上文件夹的适当访问权限; IE 应用程序池名称=hello.com,用户为IIS AppPool\hello.com。

我认为您的问题是您没有为应用程序池用户授予文件夹权限。我认为您错误地将它们分配给了不必要的 Windows 帐户。 高温

【讨论】:

  • 您好@ianbaily,感谢您的回复。第一步——应用程序池的标识可以是LocalService/LocalSystem/NetworkService。找不到ApplicationPullIdentity,是不是应用的Idntity?
  • 在 ApplicationPools 区域的 Advanced Settings 下,查看 Process Model --> Identity。在内置帐户下,ApplicationPoolIdentity 是最后一个。我倾向于避免使用 NetworkService,因为使用 ApplicationPoolIdentity 会使所有内容更加隔离。
  • 谢谢@ianbaily!做到了!
  • 不客气 :-) 当我第一次遇到这个问题时,它也让我困惑了好久,很高兴能传授知识!
【解决方案2】:

您是否在服务器上安装了正确版本的 .NET?您还需要在 IIS 中注册 ASP.NET - c:\windows\Microsoft.NET\framework\v2.0.50727(或 v4.0....) aspnet_regiis.exe -i

在命令行中使用 iisreset 重新启动 IIS 后

【讨论】:

  • 感谢@Ivan,回复我。运行这两个命令后,我仍然得到“访问被拒绝”。为什么您觉得您重新安装 .Net Framework 与此自动处理问题有关?
猜你喜欢
  • 2011-07-03
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多