DNN或IIS 401未经授权错误以及一些失败的诊断尝试

4
我正在首次安装DNN,按照dotnetnuke.com上的教程进行操作,但一直卡在这里。由于我使用的是Windows 8,所以在Google上找不到答案,以下是我的问题:
当我启动dnn的安装向导时,它看起来像这样:
屏幕截图
显然,样式表和图片没有加载,并且错误控制台显示如下:
屏幕截图
好吧,也许是权限的问题。我检查了与IIS相关联的文件夹的属性,发现它是只读的:
屏幕截图
但是无论我多少次取消选择设置并应用于子文件夹/文件,该设置都非常顽固,总是回到只读状态。我甚至尝试从命令行强制更改:
屏幕截图
今天早上,我开始思考,也许我在追错方向。也许有一些我忽略的IIS或DNN设置。不幸的是,我已经超出了自己的能力范围。我正在尝试安装DNN以便学习它,所以这对我来说都是新的领域。这就是你们,Stack Overflow的伟大人民,可以提供帮助的地方。请帮帮我!谢谢。
4个回答

7
您需要将 IIS 认证 -> 匿名身份验证 ->“匿名用户身份”与文件目录权限相匹配。这是为了允许 DNN 代码在您的文件系统中执行。建议设置为使用“应用程序池身份”,以限制您的 IIS 服务器/网站进入服务器环境的其他部分。
从 IIS 管理控制台或 wwwroot\yourDNNinstalllocation 文件夹中,将权限设置为“IIS AppPool\ApplicationPoolName”以进行修改。注意:Windows 权限将需要“位置”为“您的-IIS-Server-or-PC-name”,而不是任何域位置。
如果您确实想要在数据库服务器上使用域角色和集成 SQL 安全,则需要:
1. 创建一个域\用户,例如“yourDomain\dnn_yourCustomer”,然后 2. 将该用户添加到 DNN 数据库的 SQL 安全性中,并 3. 更改您的 IIS 匿名身份验证以使用域\用户,并 4. 将 www 文件夹的权限设置为修改以匹配您的域\用户。

3
您可以检查一下IIS中是否启用了“静态内容”?
要执行此操作,请转到“开始”,然后运行,键入“添加删除程序”,然后单击“打开或关闭Windows功能”。
在Internet信息服务下,转到“万维网服务”部分,常见HTTP功能,确保已启用“静态内容”。 更新: 您可以安装此热补丁,看看是否解决了问题?http://support.microsoft.com/kb/980368

太棒了,感谢您的回复!我已经检查过了,这是我找到的:http://rodenbeek.com/preview/6.PNG看起来我已经勾选了那个选项,但我不知道很多这些选项是做什么用的。也许我勾选了一些不该勾选的东西? - NominalAeon
1
我已经更新了答案并提供了一个热修复链接,你可以试一下吗?http://support.microsoft.com/kb/980368 - Chris Hammond
没有Windows 8的版本,这真是我的噩梦。虽然谢谢你的回复,但请不要放弃! - NominalAeon
1
你能否在你发布的那张截图中展开WWW服务下的安全节点?我在本地环境中启用了基本身份验证、请求筛选和Windows身份验证。 - Chris Hammond
我点击了上面截图中显示的所有安全设置,重新启动了电脑,但该网站仍然显示401错误。 - NominalAeon
这里有一些可能具有诊断重要性的内容;如果我右键单击并打开其中一个未显示的图像,我会得到这个401.3错误页面 - NominalAeon

1
好的,我修复了它。也许不是"修复",而是"这次没有破坏它"。我删除/卸载了所有内容,并回到了第一个视频。我之前没有注意到的部分是当他说如果你使用SQL Server Management Studio Express,跳过设置数据库步骤。所以我这样做了,一切都正常工作了。
我还执行了另一个步骤,当我搜索"IIS 401.3未授权错误"时发现的。它说要将IUSR用户添加到dnndev.me文件夹的安全设置中。我不确定这是否在修复问题方面起了任何作用,但它也没有伤害到任何东西。
总之,问题已解决。谢谢你,克里斯,感谢你的回复。我感激你的帮助,并期待在dnn.com上深入学习您的其他教程视频。

1
很高兴你把它搞定了!很抱歉这件事情带来了这么多麻烦。 - Chris Hammond
1
您介意再进行一些故障排除吗?如果删除IUSR帐户,问题是否会再次发生?在IIS7/7.5中,创建网站时会创建应用程序池和该池的标识。我不知道IIS8是否也是这样,但您可以在文件系统中的DNNDEV.me文件夹上添加“iis apppool\dnndev.me”的安全性,并授予修改权限。我想知道这是否可以解决您遇到的问题。 - Chris Hammond
当然可以!我取消了IUSR帐户,网站仍然可以正常工作。我认为我遇到的问题与忽略您的请求有关,如果我使用SSMS Express,则不要设置数据库。因此,我将应用程序池绑定到了一个设置为“COMPUTERNAME \ SQLEXPRESS”而不是“。”的数据库上。老实说,我对所有这些东西都感到很困惑。 - NominalAeon

1
我知道我来晚了,但我也遇到了这个问题,并尝试使用这里的答案进行修复。在尝试上述修复措施后,我无法让所有内容都正常工作,因此我查看了IIS中默认应用程序的权限。它有两个名为WEBMGR1\UsersWEBMGR1\IIS_IUSRS的用户。我将它们都添加进去后,问题得到解决。

我之前遇到了同样的问题,过了一周后进行了研究,发现这个答案可以解决我的问题,后来我意识到这就是我的答案。太神奇了。 - intrepid_em

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接