【问题标题】:.Net website create directory to remote server access denied.Net 网站创建目录到远程服务器访问被拒绝
【发布时间】:2010-04-22 22:07:24
【问题描述】:

我有一个创建目录的 Web 应用程序。 该应用程序在 Web 服务器上创建目录时工作正常,但是当它尝试在我们的远程文件服务器上创建目录时它不起作用。

文件服务器和网络服务器在同一个域中。 我在我们的域“DOMAIN\aspnet”中创建了一个本地用户。本地用户在两台服务器上。

我在域用户下运行我的 .Net 应用程序池。我还尝试在 web.config 中使用 windows impersonate 在域用户下运行。

我已验证域用户对远程目录具有完全控制权。为了对此进行调试,我还赋予了“每个人”对远程目录的完全控制权。

为了调试它,我还将域用户添加到管理员组。

我在 Web 服务器上有一个简单的 .net 测试页面来测试它。 通过测试页面,我可以读取文件服务器上的目录并获取其中所有内容的列表。

我无法上传文件或在文件服务器上创建目录。

这是有效的代码:

var path = @"\\fileserver\images\";
 var di = new DirectoryInfo(path);
            foreach (var d in di.GetDirectories())
            {
                Response.Write(d.Name);
            }

这里的代码不起作用:

 path = Path.Combine(path, "NewDirectory");
 Directory.CreateDirectory(path);

这是我得到的错误: 拒绝访问路径“\fileserver\images\NewDirectory”。

我很坚持这一点。有什么想法吗?

【问题讨论】:

    标签: .net iis access-denied remote-server create-directory


    【解决方案1】:

    检查服务器/站点的信任级别。如果您的运行低于完全信任,那么您可能需要修改您的 FileIOPermission 设置:

    <IPermission 
       class="FileIOPermission" 
       version="1" 
       Read="$AppDir$" 
       Write="$AppDir$" 
       Append="$AppDir$" 
       PathDiscovery="$AppDir$"/>
    

    $AppDir$ 宏值扩展为您的网站所在的文件夹。您可以通过用分号分隔附加路径。

    您需要编辑的文件将由C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG 中的主web.config 文件中的&lt;trust level=.../&gt; 设置指向,假设您正在运行.NET 2.0。

    【讨论】:

      【解决方案2】:

      问题最终成为路径问题。

      \fileserver\images\ 被映射到 h:\files\http\images

      该服务有权访问 H 的驱动器,但没有共享。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-06
        • 2012-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-21
        • 2013-11-11
        相关资源
        最近更新 更多