通过IIS 10在远程服务器上创建文件夹时拒绝访问

epfja78i  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(139)

我在IIS服务器上部署了一个Web应用程序,域名为“XXXXXX082.cs.net“。当用户提交表单时,该应用程序会尝试在另一台服务器上的“XXXXXX084.cs.net”文件夹中的“D”驱动器的项目文件夹中创建一个文件夹。
虽然我可以从“XXXXXX082.cs.net“在“XXXXXX084.cs.net“上手动创建文件夹而没有任何问题,但Web应用程序始终会遇到“拒绝访问”错误。
我已经核实了以下内容:
1.我已经检查并确保目标文件夹(“\XXXXXX084.cs.net\D$\projects”)上的共享和共享权限都允许必要的访问。
1.应用程序池标识:“XXXXXX082.cs.net“上IIS应用程序的应用程序池标识设置为“DefaultAppPool”,我已授予“XXXXXX084.cs.net“上“projects”文件夹的“DefaultAppPool”完全控制访问权限。
尽管采取了这些措施,应用程序仍然报告访问被拒绝。我可能遗漏了什么,我应该采取什么步骤来排除故障并解决此问题?
我的Webconfig:

<add key="ProjectFilesRootPath" value="\\XXXXXX084.cs.net\projects\" />

字符串
我在控制器中创建文件夹的方法。

private string ProjectFolderRootPath
        {
            get
            {
                var projectFolderPath=ConfigurationManager.AppSettings().ProjectFilesRootPath;

                return projectFolderPath;
            }
        }

[HttpGet]
        public string createProjectFolder(string id, string PName)
        {
            try
            {
                
                string PId= id;
                string ProName = PName;

                string rootPath = ProjectFolderRootPath.TrimEnd(Path.DirectorySeparatorChar);
                string combinedName = $"{PId} {ProName}";

                string projectFolderPath = Path.Combine(rootPath, combinedName);
                projectFolderPath = projectFolderPath.Replace(Path.DirectorySeparatorChar, '/');

                if (!Directory.Exists(projectFolderPath))
                {
                    Directory.CreateDirectory(projectFolderPath);
                }

                return projectFolderPath;
            }
            catch (Exception ex)
            {
                return "Error creating project folder: " + ex.Message;
            }
        }


我的错误:

Error creating project folder: Access to the path '//XXXXXX084.cs.net/Projects/10215 Test' is denied.


感谢您的指导。

vwoqyblh

vwoqyblh1#

当你在这里谈论一些“AppPool”身份时,有些困惑。
用户仍然是IIS_USER。
然而,你也没有提到这两台计算机是否在某个网络上,是否有域控制器?(这意味着/暗示你的域控制器服务器将允许(或不允许)这里的权限,因此你不会,不能,也不应该在服务器上设置权限,因为现在域控制器服务器将为你处理这个问题。
但是,为了保存写100页的建议和说明在这里?
我建议你在网络服务器上创建一个新用户(从那个服务器,而不是一个域用户/名称。所以,创建一个用户登录+密码。
然后,在84服务器上,还创建一个带密码的防毒墙用户名。
现在在'84'服务器上测试新的登录,并确保它工作,并确保您可以使用此用户在正确的文件夹中创建文件夹。好的,注销,现在回到服务器82,并如前所述使用此用户/登录应用程序池。请记住,在2个服务器上创建的用户必须具有完全相同的名称,和完全相同的密码。
因此就像这样:
x1c 0d1x的数据
上面的应该/应该会起作用。
它不是在所有清楚,如果Web服务器加入到您的公司网络或没有(可能不是一个好主意反正).不管即使82服务器是公司域的一部分?没关系,和简单地创建一个非域用户在每2台计算机,然后使用该登录从Web服务器应用程序池(模拟)应该和将简单地工作.
如前所述,我们可以在这里更深入地了解域控制器(如果使用)的细节。然而,如前所述,上述方法无论如何都会工作。

相关问题