【发布时间】:2019-12-18 19:51:30
【问题描述】:
我已经在 Stack 和 Net 上搜索了一个半星期,试图找出这个问题,但没有成功。
我有一个网站部署到 Windows Server 2012 上的 IIS 8。在我的网站上,我编写了一个在不同服务器上创建目录结构的方法。在该结构中是文件夹(作品)、文件快捷方式(作品)以及指向第三台服务器上文件夹的一个符号链接 (ISSUE)。
在通过 Visual Studio 运行时,此符号链接的创建没有错误。发布到 IIS 时,不会创建符号链接。通过 Marshall.GetLastWin32Error() 我发现错误代码 1314 被抛出,A required privilege is notheld by the client.
到目前为止我做过的事情:
- 将应用程序池身份设置为作为我创建的 Active Directory 帐户运行。
- 将帐户添加到所有三台服务器上的管理员组。
- 在本地策略下,将该帐户添加到所有三台服务器上的“创建符号链接”策略中。
- 在本地策略下,确保在所有三台服务器上禁用“用户帐户控制:以管理员批准模式运行所有管理员”。
- 为所有 3 台服务器上的“创建符号链接”策略添加了 IUSR。
我假设问题出在 IIS 中,因为它通过 VS 运行得非常好。
编辑
我调用的方法是
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool CreateSymbolicLink(string lpSymlinkFileName, string lpTargetFileName, int dwFlags);
CreateSymbolicLink("{FolderName}", @"//{servername}/{path}/", 0x1)
编辑 2 我从头开始使用权限和安全设置并尝试 Jokies 的步骤。希望明天有更新
【问题讨论】:
-
你试过用绝对路径运行吗?有时 IIS 没有设置正确的当前目录,因此您正在创建您不认为的路径。