【问题标题】:Programatically create directory for new user on web site以编程方式在网站上为新用户创建目录
【发布时间】:2012-03-13 12:38:57
【问题描述】:

我刚刚将我的网站上传到 Go Daddy,当用户在我的网站上创建帐户时,我的代码会根据用户 ID 动态创建目录。它不是创建目录,所以我想我需要以某种方式设置权限,但我无法控制 IIS,因为我的网站是托管的。如何以编程方式设置权限?

if(Directory.Exists(path))
                return true;

try
{
    Directory.CreateDirectory(path);
}

【问题讨论】:

  • 异常处理程序在做什么? (你确实有一个异常处理程序吗?)。如果 CreateDirectory 失败,您应该会收到一条异常消息。
  • @Steve 我猜处理程序看起来像这样,在括号之间:(yummy exception)

标签: asp.net c#-4.0 permissions create-directory


【解决方案1】:

您只能在提供给您网站的 Web 根目录中创建文件/子目录。 GoDaddy 可能已经为您提供了一个控制面板的登录名,您可以使用它在您的目录中设置权限。 Godaddy账号权限设置流程如下:

  1. 使用您的用户名/帐号和密码登录
  2. 点击我的帐户
  3. 点击托管账户列表
  4. 点击打开(您要打开的虚拟主机包)
  5. 向下滚动到内容并单击文件管理器
  6. 选择您要设置权限的域文件夹,然后点击上方控制栏上的权限按钮
  7. 设置所需的权限并单击“确定”。

【讨论】:

  • 是的,就是这样。我早该想到的!谢谢。
  • 我必须进入域 (Plesk) 的主机帐户,然后更改 Virtual Directories 下的权限。使用位于顶部Virtual Directories下方的Directory Access Permissions
【解决方案2】:

你有路径变量的地方,你试过了吗:

if(Directory.Exists(Server.MapPath(path)))
    return true;

try
{
    Directory.CreateDirectory(Server.MapPath(path));
}

路径的格式是什么?

【讨论】:

  • 我在服务器上创建了一个名为 people 的目录,因此当我将路径作为参数传递给我的方法时,我已经调用了 Server.MapPath("people");我认为这可能是目录的权限问题。
【解决方案3】:

您需要使用Server.MapPath Method 映射物理目录路径。

string directoryPath = Server.MapPath(path);       

if(Directory.Exists(directoryPath)) 
            return true; 

try 
{ 
    Directory.CreateDirectory(directoryPath ); 
} 

在网络服务器上,您不能在您的网站virtual directory 文件夹之外创建目录或文件。

【讨论】:

  • 我在服务器上创建了一个名为 people 的目录,因此当我将路径作为参数传递给我的方法时,我已经调用了 Server.MapPath("people");我认为这可能是目录的权限问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-28
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
相关资源
最近更新 更多