在使用符号 link 映射的网络共享上创建子目录
Creating a sub-directory on a network share mapped using symbolic link
我们有 2 台服务器,我们称它们为 Server1 和 Server2。 Server1 是我们的数据库服务器,Server2 是我们的应用程序服务器 运行 .NET 4.5 网络应用程序。
Server1 上的文件夹创建为:
C:\SomeFolder\SubFolder
相同的内容已共享,并且 "Everyone" 已将 "Full Access" 授予文件夹,包括共享权限。
同一文件夹作为符号映射到 Server2 link (https://superuser.com/a/244572):
mklink /d "c:\inetpub\wwwroot\App\App_Data\SubFolder" "\Server1\SubFolder\"
现在我可以浏览:
c:\inetpub\wwwroot\App\App_Data\SubFolder
照常使用文件资源管理器。我可以按预期创建出现在 Server1 上的文件和子文件夹。
然而,当我尝试使用我的 C# 网络应用程序创建子目录时:
System.IO.Directory.CreateDirectory(@"c:\inetpub\wwwroot\App\App_Data\SubFolder\Level1\Level2");
同样报错:
Access to the path 'C:\inetpub\wwwroot\App\App_Data\SubFolder\Level1\Level2' is denied.
System.UnauthorizedAccessException: Access to the path 'C:\inetpub\wwwroot\App\App_Data\SubFolder\Level1\Level2' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost)
at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
我都检查过了。我将 Server2 上的应用程序池标识设置为本地系统,得到了同样的错误。我将服务器 2 上的应用程序池标识设置为服务器 2 上的 "administrator" 帐户,仍然出现相同的错误。
然而,使用相同的管理员帐户并使用文件资源管理器创建子目录和文件的 RDPing 到 Server2 工作。
有人可以协助如何使用 C#/代码创建 sub-folder/file 作品吗?
为了后代:
当您尝试创建 level1\level2 文件夹时,需要检查 level1 文件夹是否已经存在。尽管文档建议它会创建到底层的所有路径,但在使用网络资源和连接点时,API 可能有点粗略 - 尝试先创建 level1 文件夹,然后再创建 level2 文件夹。
我们有 2 台服务器,我们称它们为 Server1 和 Server2。 Server1 是我们的数据库服务器,Server2 是我们的应用程序服务器 运行 .NET 4.5 网络应用程序。
Server1 上的文件夹创建为: C:\SomeFolder\SubFolder
相同的内容已共享,并且 "Everyone" 已将 "Full Access" 授予文件夹,包括共享权限。
同一文件夹作为符号映射到 Server2 link (https://superuser.com/a/244572):
mklink /d "c:\inetpub\wwwroot\App\App_Data\SubFolder" "\Server1\SubFolder\"
现在我可以浏览: c:\inetpub\wwwroot\App\App_Data\SubFolder
照常使用文件资源管理器。我可以按预期创建出现在 Server1 上的文件和子文件夹。
然而,当我尝试使用我的 C# 网络应用程序创建子目录时:
System.IO.Directory.CreateDirectory(@"c:\inetpub\wwwroot\App\App_Data\SubFolder\Level1\Level2");
同样报错:
Access to the path 'C:\inetpub\wwwroot\App\App_Data\SubFolder\Level1\Level2' is denied.
System.UnauthorizedAccessException: Access to the path 'C:\inetpub\wwwroot\App\App_Data\SubFolder\Level1\Level2' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost)
at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
我都检查过了。我将 Server2 上的应用程序池标识设置为本地系统,得到了同样的错误。我将服务器 2 上的应用程序池标识设置为服务器 2 上的 "administrator" 帐户,仍然出现相同的错误。
然而,使用相同的管理员帐户并使用文件资源管理器创建子目录和文件的 RDPing 到 Server2 工作。
有人可以协助如何使用 C#/代码创建 sub-folder/file 作品吗?
为了后代:
当您尝试创建 level1\level2 文件夹时,需要检查 level1 文件夹是否已经存在。尽管文档建议它会创建到底层的所有路径,但在使用网络资源和连接点时,API 可能有点粗略 - 尝试先创建 level1 文件夹,然后再创建 level2 文件夹。