500.19在IIS 7上,无法本地登录

26

我不知道应该问谁……

我看到了这个问题,我认为答案应该接近,但似乎我仍然无法做到这一点。

有趣的是,同样的(我想) 一年前或更早以前在另一台带有IIS 7的服务器上由我完成,没有进一步的麻烦。也可能是我不记得太多。

我有一个在端口80上运行的Apache服务器(不能更改)

这是我做过的事情:

综合AppPool是我放置在其他服务器上的问题,因此我尝试更改

  • 默认AppPool为Classic .Net
  • WebApp Pool为Classic .Net

用户在Webservice上也是强制性的,因此我正在放置一个模拟任何匿名(或非匿名)用户的服务帐户,因此我有:

  • ServiceAccount作为wwwroot和子文件夹的管理员
  • ServiceAccount作为默认网站中默认模拟的身份
  • ServiceAccount在每个我需要的Web App中被模拟
  • 将文件夹与ServiceAccount共享读/写

此外:

  • 我已经测试了访问,授权和身份验证都非常好。
  • 我已多次重新启动应用程序,站点和IIS,但均未成功。
  • 检查事件日志,未找到有用信息。
  • 修改applicationHost.config导致更多问题而不是解决方案。

当我尝试查看IIS7中的应用程序设置时,我得到了以下内容:

--------------------------- 应用程序设置 ---------------------------

执行此操作时出现错误。

详细信息:

文件名: \?\C:\Windows\system32\inetsrv\config\applicationHost.config

行号:165

错误:无法使用虚拟目录密码作为用户MyDOMAIN\MyUser在%SystemDrive%\inetpub\wwwroot上本地登录

--------------------------- 确定 ---------------------------

当我访问我的页面(一个asmx文件)时,我看到以下内容:

HTTP 错误 500.19 - 内部服务器错误 请求的页面无法访问,因为页面的相关配置数据无效。

详细错误信息 模块 IIS Web Core 通知 未知 处理程序 尚未确定

错误代码 0x80070569

配置错误 无法使用虚拟目录密码作为用户MyDOMAIN\MyUser在C:\inetpub\wwwroot上本地登录

配置文件 不可用(配置隔离)

请求的 URL http://localhost:8080/myApp/MyWebService.asmx

物理路径

登录方法 尚未确定

登录用户 尚未确定


@编辑:0x80070569 让我看到服务账户没有像应该的那样登录为服务或批处理。

这是一个需要调整的安全设置,必须将组策略对象设置为帐户(例如 MyDOMAIN\MyUser)。这是只有IT安全领域才能授权的访问。

即使更改了这个设置,问题仍然存在。

7个回答

63

对我而言,被接受的答案没有生效。

但是当我按照以下步骤操作后,问题得到了解决:

  1. 进入您的IIS管理器。
  2. 点击Sites
  3. 右键单击默认网站,转到管理网站,然后点击高级设置
  4. 将物理路径凭据设置为具有凭据的特定用户。
  5. 重新启动IIS。

注意:如果系统密码最近更改过,您还可能需要在应用程序池中重新输入凭据。


4
这是我们遇到的问题。本来没有想过要改变它。我们将其更改为“应用程序用户(穿透身份验证)”选项,并使其正常工作了。 - Ojen
7
如果您已经像我一样完成了这个步骤,请尝试重新输入您的凭据,特别是如果您所在的企业环境经常要求用户更改密码。可能只是在尝试使用您旧的凭据访问目录。 - J.D. Mallen
2
@J.D. Mallen,是的,我同意。如果更改了密码,您还可以更改应用程序池的凭据。 - Sibeesh Venu
1
@SibeeshVenu 非常感谢你。我在这个问题上烦恼了很久,你帮我解决了剩下的一半。 - Zeeshan Ajmal
1
@ZeeshanAjmal 希望它已经长回来了 :) - Sean

8
实际上,一个名为secpol.msc的策略阻止了访问网站。ServiceAccount不是服务账户。
正如我发布的编辑修改中IT安全人员赋予了我设置*服务账户*的权限,但这并不足以解决问题。
在网站的高级设置中,选择了物理路径凭据登录类型、批处理登录方法。
然而,服务账户仍然没有权限以批处理方式运行。
问题就在这里。
不仅需要服务账户,还需要*作为批处理作业运行*。

4
在网站的“高级设置”中,“物理路径凭据”被设置为我的用户名(不知道为什么),但将其更改为“应用程序用户(身份验证透传)”后,错误得到了修复。这个错误是由于我在Active Directory中的密码被更改而引起的。 - mihkov

1
有时会因为更改管理员密码或更改用户访问权限而导致此问题。之后应用程序池无法访问本地用户。对于这个问题最愚蠢的解决方案之一是删除网站和应用程序池,然后创建另一个网站。这个解决方案帮助了我。

完全同意你的观点,如果你不能管理网站,那么你就无法管理它。 - Phi

1
检查应用程序池和应用程序的密码。尝试单击“测试设置”以检查连接是否正常。

对我有用,我使用了AD身份验证,我的密码过期并更改。当我更新应用程序时,它会向我抛出此错误页面。在IIS管理器>站点>我的站点>基本设置>连接方式>设置凭据中更新密码,这就像魔法一样工作了! - Gss Aditya

0

我尝试了被接受的答案,但是它对我没有用。

但是当我按照以下步骤操作时,我的问题得到了解决:

1. Go to your IIS manager.
2. Click on Sites
3. Right-click on Default Web Sites and select 'Basic Settings'
4. Select Classic .NET AppPool from the Application Pool drop down
5. Save and Exit

一切都正常。


0

其他答案都没有解决我的问题。

最终,我不得不重新创建我的站点和应用程序池,这远非理想,但是这是唯一有效的解决方案。

IIS 必须缓存了一个我找不到/清除的旧值。


0

我在我的Windows 10 Pro / IIS Web服务器上遇到了这个问题,连接为localhost。我几乎每天都使用IIS / localhost,并且已经使用了多年,但我以前从未见过这个错误消息。我重新启动了计算机,问题立即消失了。我不知道是什么原因突然发生了这种情况,早上IIS / localhost还正常工作,我没有更改任何设置。当我点击Sites中的网站时,也会收到类似的错误消息(其他网站正常工作)。我希望重新启动也能解决您的问题。


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