将 <location> 标记添加到 web.config 会导致无法访问网站文件夹。怎么修?
Adding the <location> tag to web.config causes website folders to be inaccessible. How to fix?
我在 main
网站下添加了一个应用程序,它是主网站的更新版本。名为 V2
的子应用程序将用于预览对主网站的更改。
为了从主网站访问 V2,我需要修改 web.config
以在 <location path="." inheritInChildApplications="false">
标签中同时包含 <system.web>
和 <system.webServer>
标签。
V2 网站按预期运行(即 //main/V2
),但无法读取主文件夹和 V2 中的所有子文件夹。样式和图像位于无法访问的文件夹中。这似乎是一个权限问题。该应用程序配置为允许所有用户完全访问根目录和所有子目录。
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
我需要做什么才能使所有子目录都可访问?
您在访问子文件夹时收到了什么错误消息?当您应用配置时
<location path="." inheritInChildApplications="false">
,将不会应用子文件夹。
IIS 默认会在applicationhost.config 中指定<add accessType="Allow" users="*" />
。因此,如果您在 web.config 中指定了 <allow users="*" />
,则必须删除 applicationhost.config 中的默认设置以避免重复键错误。
当您仅应用 inheritInChildApplications="false"
时,<allow users="*" />
将仅适用于根 "location='.'"
级别。并且没有为这些子文件夹指定授权规则。然后,当您访问这些文件夹时,您可能会收到 401.2。
请为这些路径设置授权规则。
要解决权限问题,请启用失败请求跟踪。它会告诉你应该在哪里授予权限。
权限问题是由 web.config
中的 <location>
标签引起的。 <system.webServer><validation>
标签不喜欢被包裹在 <location>
标签中,所以我把它拉了出来;
像这样。
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
<location path="." inheritInChildApplications="false">
<system.webServer>
...
现在所有文件夹都可以读取了。
我在 main
网站下添加了一个应用程序,它是主网站的更新版本。名为 V2
的子应用程序将用于预览对主网站的更改。
为了从主网站访问 V2,我需要修改 web.config
以在 <location path="." inheritInChildApplications="false">
标签中同时包含 <system.web>
和 <system.webServer>
标签。
V2 网站按预期运行(即 //main/V2
),但无法读取主文件夹和 V2 中的所有子文件夹。样式和图像位于无法访问的文件夹中。这似乎是一个权限问题。该应用程序配置为允许所有用户完全访问根目录和所有子目录。
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
我需要做什么才能使所有子目录都可访问?
您在访问子文件夹时收到了什么错误消息?当您应用配置时
<location path="." inheritInChildApplications="false">
,将不会应用子文件夹。
IIS 默认会在applicationhost.config 中指定<add accessType="Allow" users="*" />
。因此,如果您在 web.config 中指定了 <allow users="*" />
,则必须删除 applicationhost.config 中的默认设置以避免重复键错误。
当您仅应用 inheritInChildApplications="false"
时,<allow users="*" />
将仅适用于根 "location='.'"
级别。并且没有为这些子文件夹指定授权规则。然后,当您访问这些文件夹时,您可能会收到 401.2。
请为这些路径设置授权规则。
要解决权限问题,请启用失败请求跟踪。它会告诉你应该在哪里授予权限。
权限问题是由 web.config
中的 <location>
标签引起的。 <system.webServer><validation>
标签不喜欢被包裹在 <location>
标签中,所以我把它拉了出来;
像这样。
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
<location path="." inheritInChildApplications="false">
<system.webServer>
...
现在所有文件夹都可以读取了。