c# - HTTP 错误 401.1 - 未经本地 IIS 授权

标签 c# iis-7

我已经在我的本地机器上创建了在 Debug模式下工作正常的网站,但是当我把这个网站放在我机器的本地 iis (7.5) 上时,我得到了

HTTP 错误 401.1 - 未经授权 您无权使用您提供的凭据查看此目录或页面。

身份验证设置 我启用了 Windows 模拟和 Windows 身份验证,并且禁用了该部分中的所有其他内容

所有文件夹都有完整的权限

谁能告诉我这是怎么回事?

最佳答案

作为一个快速而肮脏的修复,授予 IIS_IUSRS读取/执行修改您的网络文件夹的权限...但不要在面向互联网的服务器上执行此操作,请继续阅读。 ...

要正确解决此问题,您应该为您的站点授予应用程序池标识读取/执行修改 对您应用程序的 Web 文件夹的权限。为此:

  1. 打开 IIS 管理器,导航到站点部署到的网站或应用程序文件夹。
  2. 打开“高级设置”(位于右侧操作 Pane )。
  3. 记下应用程序池名称,然后关闭此窗口
  4. 双击身份验证图标打开身份验证设置
  5. 禁用Windows 身份验证
  6. 右键单击匿名身份验证 并单击Edit
  7. 选择 Application pool identity单选按钮单击 OK
  8. 从左侧的 IIS 管理器树中选择“应用程序池”节点,然后选择您在第 3 步中记下的应用程序池名称
  9. 右键单击并选择高级设置
  10. 展开流程模型设置并选择 ApplicationPoolIdentity“内置帐户”下拉列表中单击 OK .
  11. 点击 OK再次保存并关闭应用程序池高级设置页面
  12. 打开管理员命令行(右键单击 CMD 图标并选择“以管理员身份运行”。它位于开始菜单的某个位置,可能在“附件”下。
  13. 运行以下命令:

icacls <path_to_site> /grant "IIS APPPOOL\<app_pool_name>"(CI)(OI)(M)

例如:

icacls C:\inetpub\wwwroot\mysite\ /grant "IIS APPPOOL\DEFAULTAPPPOOL":(CI)(OI)(M)

如果一切顺利icacls.exe将报告:

processed file: c:\inetpub\wwwroot\mysite
Successfully processed 1 files; Failed processing 0 files

关于c# - HTTP 错误 401.1 - 未经本地 IIS 授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892547/

相关文章:

c# - 在 Binding 项目中实现 MKAnnotation 协议(protocol)

c# - 如何在访问 Asp.net MVC 中的 View 文件夹时显示错误页面

c# - 我能以某种方式整理这个(过度使用吗?)泛型?

asp.net-mvc - 网站下 IIS 7 Web 应用程序中的相对路径

asp.net - 在 IIS 中从一个 IP 运行多个站点

c# - C# 的 Mongo 2.1 rc0 驱动程序中包含 ContainsAll

c# - 渴望在 NHibernate 中加载一棵树

iis - 只有 80 端口适用于网站

performance - SSL 性能影响

asp.net-mvc - 在 IIS 7 中部署 Umbraco 7.2 后,Razor View 不生成 html