IIS无法将日志写入引用网络共享的符号链接

时间:2016-03-15 08:21:55

标签: asp.net iis iis-7 windows-server-2008-r2 user-permissions

早上好! 我有一台运行iis的服务器,以及一个位于不同网络(和域)中的另一台机器上的文件夹。 我已经成功地为网络目录创建了一个符号链接,但我无法理解为什么IIS无法编写这个目录。

我对此文件夹上的所有人都有读取,写入和执行权限。 当我用文件资源管理器打开这个目录时,一切都没问题,但是当我试着写上它们时,我给了我500错误。 从日志结果我的ASP应用程序无法写入此目录。 对不起,如果这是一个愚蠢的问题,但我已经尝试了两天,现在我结束了我的想法。 =(

1 个答案:

答案 0 :(得分:0)

这已经过时了,我不知道是否有标准的方法可以做到这一点,但我知道必须以另一种方式来完成。

我在 Windows NLB 下运行两台 IIS 8.5 Web 服务器并登录到 DFS 共享上的单独文件夹。服务器共享配置,DFS 复制维护服务器内容的一致性。

每个网站都有一个 logs 符号链接文件夹,指向 DFS 共享上的子文件夹。

服务器 1:c:\inetpub\mywebsite\logs -> \\ad.mydomain.com\Logs\Server1\mywebsite
服务器 2:c:\inetpub\mywebsite\logs -> \\ad.mydomain.com\Logs\Server2\mywebsite

这相当于将站点日志目录设置为
\\ad.mydomain.com\Logs\%COMPUTERNAME%\mywebsite

这对我有用,有一段时间,但后来停止工作。自然而然,结果是不是一个,而是两个问题

第一个是关于权限

Server1Server2WebServers 的一部分,该组具有完整的DFS 共享子文件夹 Server1Server2 的控制权,AdministratorsSYSTEM 也是如此,所有这些都是从共享继承的。通过网站代码将网站应用程序日志写入 logs 文件夹可以正常工作。

但是 IIS W3SVCxx 日志文件夹不会被创建,手动创建它们也没有任何区别。 不创建 IIS 日志文件

事实证明,IIS 需要专门为计算机 (%USERDOMAIN%\%COMPUTERNAME%) 设置日志目录的完全控制权限。我不知道为什么,也找不到解释它的参考。

此权限存在于 Server1Server2 子文件夹,显然是从共享继承的,即使 Logs 父文件夹没有它。我没有添加那个权限,不知道这个要求,当然相信 WebServers 组权限就足够了。我不知道这些权限是如何添加的。

但是,对 %USERDOMAIN%\%COMPUTERNAME%Server1 子文件夹的此 Server2 权限不可继承。因此无法写入 ServerN\mywebsite 文件夹,并且从未创建 W3SVCxx 子文件夹。

Server1Server2 文件夹添加此权限解决了这个问题,只要我使用 \\ad.mydomain.com\Logs\%COMPUTERNAME%\mywebsite 作为日志目录。

第二个问题没有解决

虽然使用符号链接 c:\inetpub\mywebsite\logs -> \\ad.mydomain.com\Logs\%COMPUTERNAME%\mywebsite 确实有效,但一开始,在修复权限问题后工作了一段时间,它再次停止工作,我找不到任何解释原因的信息。

结论

将 IIS 日志目录设置为站点名称文件夹的唯一真正优势是我不需要知道站点 ID 即可找到正确的 W3SVCxx 文件夹。但是,作为一个极简主义者,我决定忽略权限问题并将网站的日志目录设置为 \\ad.mydomain.com\Logs\%COMPUTERNAME%。必须要查找站点 ID 才能恢复我的日志。

我强烈建议使用此解决方案,并尽可能避免记录到符号链接。