【问题标题】:Create folder dynamicly on server? What is the right way?在服务器上动态创建文件夹?什么是正确的方法?
【发布时间】:2015-01-10 18:55:29
【问题描述】:

我在 myasp.com 上购买了一个服务器,我想为名为“UserData”的文件夹中的每个用户动态创建一个文件夹。注册时,现在,我通过 FTP 客户端创建目录,文件夹获取用户名。这种方法并非总是有效,所以我找到了传统方法:

Directory.CreateDirectory(Server.MapPath("~") + "hey");

通过使用这种方法,我得到一个错误:访问路径 'h:\root\home\sagigamil-001\www\site1\hey' 被拒绝。但是,我可以检查文件夹是否存在。

我该怎么办?有没有办法让服务器访问自己写?什么是正确的方法?

【问题讨论】:

  • 与经典 ASP 无关。

标签: c# asp.net server


【解决方案1】:

您可能需要要求您的主机授予 ASP .NET 进程写入权限。出于安全原因,他们可能不愿意这样做。如果得不到这样的权限,ASP .NET 将无法创建文件夹。

【讨论】:

  • 我无法使用 iis 或直接通过此文件夹中的 web.config 更改权限?
【解决方案2】:

您可以使用这个 sn-p 通过 FTP 创建一个目录:

var request = WebRequest.Create(new Uri("ftp://host/directory"));
request.Method = WebRequestMethods.Ftp.MakeDirectory;

using (var response = (FtpWebResponse)request.GetResponse()) {
    Console.WriteLine("Response status code: {0}", response.StatusCode);
}

如果需要,不要忘记设置您的凭据(将它们分配给request.Credentials)。 如果您仍然遇到问题,请不要忘记发布您遇到的错误。

【讨论】:

  • 我已经在使用这种方法了,问题可能是 myasp.com 阻塞了 ftp 端口,因为它可以工作,但不是一直有效。我想以另一种方式创建目录而不会出现“拒绝访问”错误,有没有办法可以写入服务器中的文件夹?
猜你喜欢
  • 2015-09-14
  • 2016-02-07
  • 2014-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多