我正在为我们的 Web 服务器场设置一个新模板,该模板将在本地而不是 UNC 路径中托管 Web 应用程序。应用程序中有几个文件夹用于写入数据,这些数据需要在服务器场中的所有服务器之间共享。
为了在不重写应用程序部分的情况下实现这一点,我尝试在网站配置中创建指向 UNC 路径的虚拟目录。这些虚拟目录不包含任何代码,它们只是文本文件、图像等,只需通过 运行即可StaticFileHandler
,但是当我尝试访问 VDIR 中的任何文件时,我收到一条500.19 exception
消息,提示无法读取/找到该目录中的 web.config。我没有将 VDIR 设置为应用程序,只是一个简单的指针,并以对 UNC 路径具有读取权限的域用户身份运行身份验证。
我尝试运行 CASPol 命令来授予 UNC 路径的完全信任,以及为域用户运行 aspnet_regiis -ga 命令。
在 IIS 6 中,您可以打开 VDIR 的属性并将执行权限设置为Scripts only
无需 VDIR 上的应用程序,并且不需要web.config
VDIR 本身。我查看过的所有关于在 IIS8.5 中设置 VDIR 的文档和视频都说,在创建 VDIR 时不需要额外的设置,然后设置身份验证(如果它需要与应用程序池和站点运行的方式不同的内容)。
配置:
服务器:Windows 2012R2 标准版
IIS:8.5
ASP.Net:4.0
应用程序池:集成模式
连接身份:应用程序池、网站和 VDIR 的域用户
web.config
是否存在一个全局设置,当文件未设置为应用程序时,可以禁用 VDIR 中的文件要求/检查?
答案1
我发现,当我为虚拟目录设置身份验证时,我将它们设置为域用户,因为Physical Path Credentials
我设置的Physical Path Credentials Logon Type
值Network
导致错误ACCESS DENIED
。当我将类型设置为任何其他选项时,它都能很好地加载内容。我不太清楚选项失败的原因,除非它与返回无效令牌Network
有关。Kerberos