0

将虚拟目录映射到另一台机器时,我遇到了 IIS7 的问题。

这是我的设置:

  • 我的 Web APP 正在 Web 服务器上运行(我们称之为 WEBSERVER)。Windows 服务器 2008,IIS 7。
  • 我在资产服务器中获得了一些资产/图像(我们称之为 ASSETSSERVER)。Windows Server 2003,位于 C:\Assets 文件夹中,共享为 \\ASSETSSERVER\Assets
  • 服务器位于工作组中,而不是域中。这是我无法控制的事情,我无法改变。
  • 根据我们网络团队的建议,我将应用程序池配置为在用户 WEBSERVER\portaluser 下运行
  • 在我的网络应用程序中,我定义了一个虚拟目录。我将它映射到 \\ASSETSSERVER\Assets。在登录凭据中,我指定了用户 ASSETSERVER\assetsuser(存在)。“测试凭据”按钮显示我已通过身份验证并且我已获得授权。

起初,我收到一个 500.19 错误,告诉我无法登录。这篇文章揭示了解决方案:我必须使用相同的密码创建一个 WEBSERVER\assetsuser 用户(违反直觉,但它有效)。

在那之后,我的资产仍然拒绝显示。我现在收到类似这样的消息:

Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: An error occurred loading a configuration file: Failed to start monitoring changes to '\\ASSETSERVER\assets'.

Source Error: 

[No relevant source lines]

Source File: \\ASSETSERVER\assets\web.config    Line: 0 

我做了一些广泛的谷歌搜索,并尝试了以下方法:

  • 修改了本地策略以允许 WEBSERVER\portaluser 在登录后模拟其他帐户,如此处所建议(适用于 Windows 2000 Server,但值得一试!)
  • 向 \\ASSETSSERVER\assets 中的每个人添加了权限,如此处所示底部答案)
  • 向 ASSETSSERVER\assetsuser 用户添加了对 ASSETSSERVER 中 c:\ 驱动器的读取/执行/列表权限,如此处所建议(方法 3)
  • 我编辑了注册表项以阻止 IIS 监视文件夹的更改,如此处所示作者声称它与 IIS 无关,但我很确定 IIS 确实监视文件夹以了解 web.config 中的更改)
  • 我已经在 applicationHost.config 中配置了 allowsubdirconfig="false" ,如此处所示

这些解决方案都没有奏效,我已经没有尝试什么的想法了。似乎我已经很近了,但到目前为止。有什么建议么?

4

1 回答 1

0

经过几项工作,我找到了解决此问题的方法。

这就像在 ASSETSSERVER 中创建一个名为“portaluser”的用户(与我的应用程序池身份用户相同)一样简单。

这是违反直觉的:我明确告诉 IIS7 连接到 ASSETSERVER 作为 assetsuser 服务器,但它仍然使用 portaluser 检查 web.config 的存在(并监视更改)。

看到这一点后,我决定使用同一个帐户来运行应用程序池并连接到远程虚拟目录。我只是使用了“assetsuser”而不是“portaluser”

希望这可以帮助

于 2013-10-23T09:23:30.310 回答