ASP.NET C# - 动态创建上传目录?

时间:2009-08-31 20:59:02

标签: c# asp.net directory ashx

    public class UploadHandler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
        ...

        // Create the directory if needed...
        if (!Directory.Exists(uploadDir))
        {
            System.Security.AccessControl.DirectorySecurity ds = new System.Security.AccessControl.DirectorySecurity(RivWorks.AppSettings.UploadRoot, System.Security.AccessControl.AccessControlSections.All);
            Directory.CreateDirectory(uploadDir, ds);
        }
        ...
    }

我有上面的ASHX文件代码片段,它在我的本地环境中工作正常。一旦我把它推到服务器环境我没有得到错误,它似乎已经建立了目录,但是当我检查它 - 好吧 - 它不存在。当我通过FLEX应用程序运行它时,我们收到此错误:

  

错误#2038:文件I / O错误。网址:   http://[ourdomain].com/UploadHandler.ashx?CompanyID=d229cc80-ca96-4a8a-992c-80c94ac2c6b4

我有什么遗失的吗?

更新:

  1. 我可以在磁盘上的任何位置创建文件
  2. 无法创建目录 在磁盘上的任何地方。
  3. 我在尝试创建目录时出现此错误:

      

    这个过程不具备   'SeSecurityPrivilege'特权   此操作需要。

3 个答案:

答案 0 :(得分:2)

您是否检查过您的程序是否具有对服务器上相关目录的正确访问权限?

如果由于您使用的帐户受到限制或目录被锁定而您没有正确的权限,则会看到此错误。

答案 1 :(得分:0)

网站是否以身份模拟运行= true?如果是这样,它将在您的环境中以您的凭据/授权运行

答案 2 :(得分:0)

只需使用mkdir()函数即可创建目录。定义一个可以使用SERVERMAPPATH属性的路径。

在try catch endtry块中使用以避免已存在或任何其他错误。